{"id": 1499387139, "node_id": "PR_kwDOBm6k_c5FmNXs", "number": 1961, "title": "Use click.echo() instead of print() for --root option", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 0, "created_at": "2022-12-16T00:54:56Z", "updated_at": "2022-12-16T00:55:19Z", "closed_at": "2022-12-16T00:55:18Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1961", "body": "This ensures the URL is output correctly when running under Docker.\r\n\r\nCloses #1958\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1961.org.readthedocs.build/en/1961/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1961/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1491840863, "node_id": "PR_kwDOBm6k_c5FMKSG", "number": 1944, "title": "Bump black from 22.10.0 to 22.12.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 0, "created_at": "2022-12-12T13:05:11Z", "updated_at": "2022-12-13T05:23:31Z", "closed_at": "2022-12-13T05:23:30Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1944", "body": "Bumps [black](https://github.com/psf/black) from 22.10.0 to 22.12.0.\n
\nRelease notes\n

Sourced from black's releases.

\n
\n

22.12.0

\n

Preview style

\n\n\n

Configuration

\n\n\n

Parser

\n\n\n

Integrations

\n\n\n
\n
\n
\nChangelog\n

Sourced from black's changelog.

\n
\n

22.12.0

\n

Preview style

\n\n\n

Configuration

\n\n\n

Parser

\n\n\n

Integrations

\n\n\n
\n
\n
\nCommits\n\n
\n
\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=22.10.0&new-version=22.12.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1944/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1485488236, "node_id": "PR_kwDOBm6k_c5E1iJG", "number": 1938, "title": "\"permissions\" blocks in metadata.json/yaml", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 8711695, "label": " Datasette 1.0a2"}, "comments": 3, "created_at": "2022-12-08T22:07:36Z", "updated_at": "2022-12-13T05:23:18Z", "closed_at": "2022-12-13T05:23:18Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1938", "body": "Refs #1636\r\n\r\n- [x] Documentation\r\n- [ ] Implementation\r\n- [ ] Validate metadata to check there are no nonsensical permissions (like `debug-menu` set at the table level)\r\n- [ ] Tests\r\n\r\n\r\n----\r\n:books: Documentation preview :books:: https://datasette--1938.org.readthedocs.build/en/1938/\r\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1938/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1486011362, "node_id": "PR_kwDOBm6k_c5E3XqB", "number": 1940, "title": "register_permissions() plugin hook", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 8711695, "label": " Datasette 1.0a2"}, "comments": 6, "created_at": "2022-12-09T05:09:28Z", "updated_at": "2022-12-13T02:05:55Z", "closed_at": "2022-12-13T02:05:54Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1940", "body": "Refs #1939\r\n\r\nFrom this comment: https://github.com/simonw/datasette/issues/1939#issuecomment-1343872168\r\n\r\n- [x] Unit test for the registration plugin hook itself\r\n- [x] Use them in `check_permission_actions_are_documented` test in `conftest.py`\r\n- [x] Add description field to `Permissions` (and update tests and docs)\r\n- [x] Documentation for `datasette.permissions` dictionary\r\n- [x] If no `default=` provided in call to `permission_allowed()` then use default from `datasette.permissions` list\r\n- [x] Remove `default=` from a bunch of places\r\n- [x] Throw an error if two permissions are registered with the same name or abbreviation (but other attributes differ)\r\n- [x] Update authentication and permissions documentation to explain that permissions are now registered and have a registered default\r\n\r\n\r\n----\r\n:books: Documentation preview :books:: https://datasette--1940.org.readthedocs.build/en/1940/\r\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1940/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1473664029, "node_id": "PR_kwDOBm6k_c5ELz0u", "number": 1930, "title": "Typo in JSON API `Updating a row` documentation", "user": {"value": 3556, "label": "davidbgk"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 2, "created_at": "2022-12-03T02:22:31Z", "updated_at": "2022-12-08T21:12:35Z", "closed_at": "2022-12-08T21:12:35Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1930", "body": "\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1930.org.readthedocs.build/en/1930/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1930/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1481875485, "node_id": "PR_kwDOBm6k_c5EouZs", "number": 1935, "title": "Bump furo from 2022.9.29 to 2022.12.7", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-12-07T13:02:57Z", "updated_at": "2022-12-08T21:12:08Z", "closed_at": "2022-12-08T21:12:07Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1935", "body": "Bumps [furo](https://github.com/pradyunsg/furo) from 2022.9.29 to 2022.12.7.\n
\nChangelog\n

Sourced from furo's changelog.

\n
\n

Changelog

\n\n

2022.12.07 -- Reverent Raspberry

\n\n

2022.09.29 -- Quaint Quartz

\n\n

2022.09.15 -- Pragmatic Pistachio

\n\n

2022.06.21 -- Opulent Opal

\n\n

2022.06.04.1 -- Naughty Nickel bugfix

\n\n

2022.06.04 -- Naughty Nickel

\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\n[![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)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1935.org.readthedocs.build/en/1935/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1935/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1473814539, "node_id": "PR_kwDOBm6k_c5EMVug", "number": 1931, "title": "/db/table/-/upsert", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 8711695, "label": " Datasette 1.0a2"}, "comments": 8, "created_at": "2022-12-03T07:01:44Z", "updated_at": "2022-12-08T01:12:17Z", "closed_at": "2022-12-08T01:12:16Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1931", "body": "Refs #1878\r\n\r\nStill todo:\r\n- [x] Support `\"return\": true` properly for upserts (with tests)\r\n- [x] Require both `insert-row` and `update-row` permissions\r\n- [x] Tests are going to need to cover both rowid-only and compound primary key tables, including all of the error states\r\n- [x] Documentation\r\n\r\n\r\n----\r\n:books: Documentation preview :books:: https://datasette--1931.org.readthedocs.build/en/1931/\r\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1931/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1468592292, "node_id": "PR_kwDOBm6k_c5D6nzE", "number": 1912, "title": "Merge 1.0-dev (with initial write API) back into main", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-11-29T19:31:21Z", "updated_at": "2022-11-29T19:39:37Z", "closed_at": "2022-11-29T19:39:36Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1912", "body": "See:\r\n- #1892\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1912.org.readthedocs.build/en/1912/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1912/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1452485922, "node_id": "PR_kwDOBm6k_c5DEh-E", "number": 1898, "title": "Use DOMContentLoaded instead of load event for CodeMirror initialization", "user": {"value": 95570, "label": "bgrins"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 2, "created_at": "2022-11-17T00:19:21Z", "updated_at": "2022-11-18T07:29:01Z", "closed_at": "2022-11-18T07:29:01Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1898", "body": " Closes #1894\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1898.org.readthedocs.build/en/1898/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1898/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1450363982, "node_id": "PR_kwDOBm6k_c5C9ZuP", "number": 1893, "title": "Upgrade to CodeMirror 6, add SQL autocomplete", "user": {"value": 95570, "label": "bgrins"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 48, "created_at": "2022-11-15T20:52:35Z", "updated_at": "2022-11-16T23:54:02Z", "closed_at": "2022-11-16T23:49:06Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1893", "body": "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.\r\n\r\nDone:\r\n* Changed to bundling using rollup as per https://codemirror.net/examples/bundle/\r\n* Restored a fromTextArea-like function from https://codemirror.net/docs/migration/\r\n* Removed old JS and CSS files (no external CSS needed anymore as per https://codemirror.net/examples/styling/)\r\n* Updated instructions for building the bundle\r\n\r\nNot done:\r\n* cmResize had an error, so commented out the resize handle\r\n* Add extraKeys option for shift+enter and tab\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1893.org.readthedocs.build/en/1893/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1893/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1401155623, "node_id": "PR_kwDOBm6k_c5AZLzm", "number": 1839, "title": "Bump black from 22.8.0 to 22.10.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-10-07T13:13:41Z", "updated_at": "2022-10-27T20:51:46Z", "closed_at": "2022-10-27T20:51:45Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1839", "body": "Bumps [black](https://github.com/psf/black) from 22.8.0 to 22.10.0.\n
\nRelease notes\n

Sourced from black's releases.

\n
\n

22.10.0

\n

Highlights

\n\n

Stable style

\n\n

Preview style

\n\n

Configuration

\n\n

Packaging

\n\n

Blackd

\n\n

Integrations

\n\n
\n
\n
\nChangelog\n

Sourced from black's changelog.

\n
\n

22.10.0

\n

Highlights

\n\n

Stable style

\n\n

Preview style

\n\n

Configuration

\n\n

Packaging

\n\n

Blackd

\n\n

Integrations

\n\n
\n
\n
\nCommits\n\n
\n
\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=22.8.0&new-version=22.10.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1839.org.readthedocs.build/en/1839/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1839/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1400121355, "node_id": "PR_kwDOBm6k_c5AVujU", "number": 1835, "title": "use inspect data for hash and file size", "user": {"value": 536941, "label": "fgregg"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 3, "created_at": "2022-10-06T18:25:24Z", "updated_at": "2022-10-27T20:51:30Z", "closed_at": "2022-10-06T20:06:07Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1835", "body": "`inspect_data` should already include the hash and the db file size, so this PR takes advantage of using those instead of always recalculating. should help a lot on startup with large DBs.\r\n\r\ncloses #1834 ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1835/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1400431789, "node_id": "PR_kwDOBm6k_c5AWyQK", "number": 1837, "title": "Make hash and size a lazy property", "user": {"value": 536941, "label": "fgregg"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 2, "created_at": "2022-10-06T23:51:22Z", "updated_at": "2022-10-27T20:51:21Z", "closed_at": "2022-10-27T20:51:20Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1837", "body": "Many apologies, @simonw. My previous PR #1835 did not really solve the problem because the name of the database is often not known to database object in the init method.\r\n\r\nI took a cue from how you dealt with this issue and made hash a lazy property and did something similar with size.\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1837.org.readthedocs.build/en/1837/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1837/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1408561039, "node_id": "PR_kwDOBm6k_c5Axrpb", "number": 1842, "title": "check_visibility can now take multiple permissions into account", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 3, "created_at": "2022-10-14T00:06:04Z", "updated_at": "2022-10-24T02:11:36Z", "closed_at": "2022-10-24T02:11:36Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1842", "body": "Refs #1829\r\n\r\n- [x] Fix table page\r\n- [x] Fix database page\r\n- [x] Fix query page\r\n- [x] Fix row page\r\n- [x] Tests\r\n- [x] Updated documentation for `check_visibility` method, to cover the new `permissions=` keyword argument\r\n\r\nAlso this fix is currently only applied on the table page - needs to be applied on database, row and query pages too.\r\n\r\n\r\n----\r\n:books: Documentation preview :books:: https://datasette--1842.org.readthedocs.build/en/1842/\r\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1842/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1402608214, "node_id": "PR_kwDOBm6k_c5AdyZ4", "number": 1840, "title": "test commit", "user": {"value": 102635518, "label": "7lingyuan"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 0, "created_at": "2022-10-10T05:15:26Z", "updated_at": "2022-10-10T09:11:50Z", "closed_at": "2022-10-10T09:11:50Z", "author_association": "FIRST_TIMER", "pull_request": "simonw/datasette/pulls/1840", "body": "lalalalalalala\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1840.org.readthedocs.build/en/1840/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1840/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1400494162, "node_id": "PR_kwDOBm6k_c5AW_kl", "number": 1838, "title": "Open Datasette link in new tab", "user": {"value": 4399499, "label": "ocdtrekkie"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 3, "created_at": "2022-10-07T01:12:20Z", "updated_at": "2022-10-07T16:28:41Z", "closed_at": "2022-10-07T02:01:07Z", "author_association": "NONE", "pull_request": "simonw/datasette/pulls/1838", "body": "This is technically a Sandstorm-specific fix (as external links do not work inside the grain frame), however, I think it is an improvement to the upstream project, so I wanted to propose it here rather than patching it in our package.\r\n\r\nThere's much opinions on the Internet about whether external links should open in a new tab by default or not, but I'd argue very few people who might click a \"powered by\" link intend to complete their interaction with the source page (a Datasette). And furthermore, users may be working within various queries or loading visualizations (navigating away when trying to plot a million GPS coordinates pretty much just resets your progress!), so linking away within the tab might be a frustrating or destructive act to one's work, even inadvertently.\r\n\r\noriginal report: https://github.com/ocdtrekkie/datasette-sandstorm/issues/1\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1838.org.readthedocs.build/en/1838/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1838/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1386456717, "node_id": "PR_kwDOBm6k_c4_oHI4", "number": 1820, "title": "[SPIKE] Don't truncate query CSVs", "user": {"value": 536941, "label": "fgregg"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 2, "created_at": "2022-09-26T17:27:01Z", "updated_at": "2022-10-07T16:12:17Z", "closed_at": "2022-10-07T16:12:17Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1820", "body": "Relates to #526 \r\n\r\nThis is a minimal set of changes needed for having *query* CSVs attempt to download all the rows. \r\n\r\nWhat's good about it is the minimalism.\r\n\r\nWhat's bad about it:\r\n\r\n1. We are abusing the `_size` argument to indicate we don't want truncation, which isn't the most obvious thing. Additionally, there are various checks that make sure the \"_size\" URL parameter is a positive integer, which we are relying on to prevent overloading.\r\n2. The default CSV on a table page will use the max_returned_rows argument. Changing this could be a breaking change, since that's currently a place that has some facilities for pagination. Additionally, i think there's a limit under the hood somewhere which if we removed could lead to sql timeouts\r\n3. There are similar reasons for leaving the current streaming method alone, as the current methods could allow for downloading very large files that could have a sql timeout if we tried to get them in one go.\r\n\r\n\r\n\r\n\r\n----\r\n:books: Documentation preview :books:: https://datasette--1820.org.readthedocs.build/en/1820/\r\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1820/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 1, "state_reason": null} {"id": 1386917344, "node_id": "PR_kwDOBm6k_c4_prjN", "number": 1823, "title": "Keyword-only arguments for a bunch of internal methods", "user": {"value": 9599, "label": "simonw"}, "state": "open", "locked": 0, "assignee": null, "milestone": null, "comments": 3, "created_at": "2022-09-27T00:44:59Z", "updated_at": "2022-10-05T04:37:54Z", "closed_at": null, "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1823", "body": "Refs #1822\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1823.org.readthedocs.build/en/1823/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1823/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1392426838, "node_id": "PR_kwDOBm6k_c4_8BMC", "number": 1827, "title": "Bump furo from 2022.9.15 to 2022.9.29", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-09-30T13:15:35Z", "updated_at": "2022-09-30T17:55:42Z", "closed_at": "2022-09-30T17:55:41Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1827", "body": "Bumps [furo](https://github.com/pradyunsg/furo) from 2022.9.15 to 2022.9.29.\n
\nChangelog\n

Sourced from furo's changelog.

\n
\n

Changelog

\n\n

2022.09.29 -- Quaint Quartz

\n\n

2022.09.15 -- Pragmatic Pistachio

\n\n

2022.06.21 -- Opulent Opal

\n\n

2022.06.04.1 -- Naughty Nickel bugfix

\n\n

2022.06.04 -- Naughty Nickel

\n\n

2022.04.07 -- Magical Mauve

\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=furo&package-manager=pip&previous-version=2022.9.15&new-version=2022.9.29)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1827.org.readthedocs.build/en/1827/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1827/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1388227245, "node_id": "PR_kwDOBm6k_c4_uCkO", "number": 1825, "title": "Add documentation for serving via OpenRC", "user": {"value": 1048831, "label": "asimpson"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 2, "created_at": "2022-09-27T19:00:56Z", "updated_at": "2022-09-28T04:21:37Z", "closed_at": "2022-09-28T04:21:37Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1825", "body": "I also removed a few lines which felt redundant given the following section dedicated to running behind a nginx proxy.\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1825.org.readthedocs.build/en/1825/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1825/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1375930971, "node_id": "PR_kwDOBm6k_c4_GVBS", "number": 1812, "title": "Bump furo from 2022.6.21 to 2022.9.15", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 3, "created_at": "2022-09-16T13:10:45Z", "updated_at": "2022-09-16T19:50:53Z", "closed_at": "2022-09-16T19:50:52Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1812", "body": "Bumps [furo](https://github.com/pradyunsg/furo) from 2022.6.21 to 2022.9.15.\n
\nChangelog\n

Sourced from furo's changelog.

\n
\n

Changelog

\n\n

2022.09.15 -- Pragmatic Pistachio

\n\n

2022.06.21 -- Opulent Opal

\n\n

2022.06.04.1 -- Naughty Nickel bugfix

\n\n

2022.06.04 -- Naughty Nickel

\n\n

2022.04.07 -- Magical Mauve

\n\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=furo&package-manager=pip&previous-version=2022.6.21&new-version=2022.9.15)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1812.org.readthedocs.build/en/1812/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1812/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1268121674, "node_id": "PR_kwDOBm6k_c45fz-O", "number": 1757, "title": "feat: add a wildcard for _json columns", "user": {"value": 163156, "label": "ytjohn"}, "state": "open", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-06-11T01:01:17Z", "updated_at": "2022-09-06T00:51:21Z", "closed_at": null, "author_association": "FIRST_TIME_CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1757", "body": "This allows _json to accept a wildcard for when there are many JSON columns that the user wants to convert. I hope this is useful. I've tested it on our datasette and haven't ran into any issues. I imagine on a large set of results, there could be some performance issues, but it will probably be negligible for most use cases.\r\n\r\nOn a side note, I ran into an issue where I had to upgrade black on my system beyond the pinned version in setup.py. Here is the upstream issue < . I didn't include this in the PR yet since I didn't look into the issue too far, but I can if you would like.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1757/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1352931076, "node_id": "PR_kwDOBm6k_c495vvy", "number": 1794, "title": "fix word break in facets by adding ul.tight-bullets li word-break: break-all", "user": {"value": 128286, "label": "dmr"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-08-27T03:47:25Z", "updated_at": "2022-09-06T00:45:41Z", "closed_at": "2022-09-06T00:45:41Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1794", "body": "I noticed that long words break the layout of facets:\r\n\r\n![image](https://user-images.githubusercontent.com/128286/187013146-fb2bbb60-a225-441b-ba8e-b9e74fb04f93.png)\r\n\r\nSo I added CSS to add a line break. This is how the result looks now:\r\n\r\n![image](https://user-images.githubusercontent.com/128286/187013175-a706fc72-9e69-4a75-9bdf-bdaa34a0cf51.png)\r\n\r\nI don't know enough about facet edge cases to decide if this change might break other things but it looks better for me so maybe this is helpful.\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1794.org.readthedocs.build/en/1794/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1794/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1351949898, "node_id": "PR_kwDOBm6k_c492dPw", "number": 1793, "title": "Added a useful resource", "user": {"value": 111973926, "label": "MobiWancode"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-08-26T08:41:26Z", "updated_at": "2022-09-06T00:41:25Z", "closed_at": "2022-09-06T00:41:24Z", "author_association": "NONE", "pull_request": "simonw/datasette/pulls/1793", "body": "Have added a useful resource about the types of databases in SQL i.e SQLite, PostgreSQL, MySQL &, etc from the scaler topics.\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1793.org.readthedocs.build/en/1793/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1793/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1362567197, "node_id": "PR_kwDOBm6k_c4-ZxWD", "number": 1803, "title": "Workaround for test failure: RuntimeError: There is no current event loop", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-09-06T00:31:06Z", "updated_at": "2022-09-06T00:40:19Z", "closed_at": "2022-09-06T00:40:19Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1803", "body": "Closes #1802\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1803.org.readthedocs.build/en/1803/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1803/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1358848933, "node_id": "PR_kwDOBm6k_c4-NhzQ", "number": 1797, "title": "Bump black from 22.6.0 to 22.8.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 0, "created_at": "2022-09-01T13:25:14Z", "updated_at": "2022-09-05T18:51:52Z", "closed_at": "2022-09-05T18:51:52Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1797", "body": "Bumps [black](https://github.com/psf/black) from 22.6.0 to 22.8.0.\n
\nRelease notes\n

Sourced from black's releases.

\n
\n

22.8.0

\n

Highlights

\n
    \n
  • Python 3.11 is now supported, except for blackd as aiohttp does not support 3.11 as of publishing (#3234)
  • \n
  • This is the last release that supports running Black on Python 3.6 (formatting 3.6 code will continue to be supported until further notice)
  • \n
  • Reword the stability policy to say that we may, in rare cases, make changes that affect code that was not previously formatted by Black (#3155)
  • \n
\n

Stable style

\n
    \n
  • Fix an infinite loop when using # fmt: on/off in the middle of an expression or code block (#3158)
  • \n
  • Fix incorrect handling of # fmt: skip on colon (:) lines (#3148)
  • \n
  • Comments are no longer deleted when a line had spaces removed around power operators (#2874)
  • \n
\n

Preview style

\n
    \n
  • Single-character closing docstring quotes are no longer moved to their own line as this is invalid. This was a bug introduced in version 22.6.0. (#3166)
  • \n
  • --skip-string-normalization / -S now prevents docstring prefixes from being normalized as expected (#3168)
  • \n
  • When using --skip-magic-trailing-comma or -C, trailing commas are stripped from subscript expressions with more than 1 element (#3209)
  • \n
  • Implicitly concatenated strings inside a list, set, or tuple are now wrapped inside parentheses (#3162)
  • \n
  • Fix a string merging/split issue when a comment is present in the middle of implicitly concatenated strings on its own line (#3227)
  • \n
\n

Blackd

\n
    \n
  • blackd now supports enabling the preview style via the X-Preview header (#3217)
  • \n
\n

Configuration

\n
    \n
  • Black now uses the presence of debug f-strings to detect target version (#3215)
  • \n
  • Fix misdetection of project root and verbose logging of sources in cases involving --stdin-filename (#3216)
  • \n
  • Immediate .gitignore files in source directories given on the command line are now also respected, previously only .gitignore files in the project root and automatically discovered directories were respected (#3237)
  • \n
\n

Documentation

\n
    \n
  • Recommend using BlackConnect in IntelliJ IDEs (#3150)
  • \n
\n

Integrations

\n
    \n
  • Vim plugin: prefix messages with Black: so it's clear they come from Black (#3194)
  • \n
  • Docker: changed to a /opt/venv installation + added to PATH to be available to non-root users (#3202)
  • \n
\n

Output

\n
    \n
  • Change from deprecated asyncio.get_event_loop() to create our event loop which removes DeprecationWarning (#3164)
  • \n
  • Remove logging from internal blib2to3 library since it regularly emits error logs about failed caching that can and should be ignored (#3193)
  • \n
\n

Parser

\n
    \n
  • Type comments are now included in the AST equivalence check consistently so accidental deletion raises an error. Though type comments can't be tracked when running on PyPy 3.7 due to standard library limitations. (#2874)
  • \n
\n

Performance

\n\n
\n

... (truncated)

\n
\n
\nChangelog\n

Sourced from black's changelog.

\n
\n

22.8.0

\n

Highlights

\n
    \n
  • Python 3.11 is now supported, except for blackd as aiohttp does not support 3.11 as\nof publishing (#3234)
  • \n
  • This is the last release that supports running Black on Python 3.6 (formatting 3.6\ncode will continue to be supported until further notice)
  • \n
  • Reword the stability policy to say that we may, in rare cases, make changes that\naffect code that was not previously formatted by Black (#3155)
  • \n
\n

Stable style

\n
    \n
  • Fix an infinite loop when using # fmt: on/off in the middle of an expression or code\nblock (#3158)
  • \n
  • Fix incorrect handling of # fmt: skip on colon (:) lines (#3148)
  • \n
  • Comments are no longer deleted when a line had spaces removed around power operators\n(#2874)
  • \n
\n

Preview style

\n
    \n
  • Single-character closing docstring quotes are no longer moved to their own line as\nthis is invalid. This was a bug introduced in version 22.6.0. (#3166)
  • \n
  • --skip-string-normalization / -S now prevents docstring prefixes from being\nnormalized as expected (#3168)
  • \n
  • When using --skip-magic-trailing-comma or -C, trailing commas are stripped from\nsubscript expressions with more than 1 element (#3209)
  • \n
  • Implicitly concatenated strings inside a list, set, or tuple are now wrapped inside\nparentheses (#3162)
  • \n
  • Fix a string merging/split issue when a comment is present in the middle of implicitly\nconcatenated strings on its own line (#3227)
  • \n
\n

Blackd

\n
    \n
  • blackd now supports enabling the preview style via the X-Preview header (#3217)
  • \n
\n

Configuration

\n
    \n
  • Black now uses the presence of debug f-strings to detect target version (#3215)
  • \n
  • Fix misdetection of project root and verbose logging of sources in cases involving\n--stdin-filename (#3216)
  • \n
  • Immediate .gitignore files in source directories given on the command line are now\nalso respected, previously only .gitignore files in the project root and\nautomatically discovered directories were respected (#3237)
  • \n
\n

Documentation

\n
    \n
  • Recommend using BlackConnect in IntelliJ IDEs (#3150)
  • \n
\n

Integrations

\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=22.6.0&new-version=22.8.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1797.org.readthedocs.build/en/1797/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1797/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1180778860, "node_id": "PR_kwDOBm6k_c41BFWj", "number": 1685, "title": "Update jinja2 requirement from <3.1.0,>=2.10.3 to >=2.10.3,<3.2.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 3, "created_at": "2022-03-25T13:12:13Z", "updated_at": "2022-09-05T18:36:49Z", "closed_at": "2022-09-05T18:36:48Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1685", "body": "Updates the requirements on [jinja2](https://github.com/pallets/jinja) to permit the latest version.\n
\nRelease notes\n

Sourced from jinja2's releases.

\n
\n

3.1.0

\n

This is a feature release, which includes new features and removes previously deprecated features. The 3.1.x branch is now the supported bugfix branch, the 3.0.x branch has become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as pip-tools to pin all dependencies and control upgrades. We also encourage upgrading to MarkupSafe 2.1.1, the latest version at this time.

\n\n
\n
\n
\nChangelog\n

Sourced from jinja2's changelog.

\n
\n

Version 3.1.0

\n

Released 2022-03-24

\n
    \n
  • \n

    Drop support for Python 3.6. :pr:1534

    \n
  • \n
  • \n

    Remove previously deprecated code. :pr:1544

    \n
      \n
    • WithExtension and AutoEscapeExtension are built-in now.
    • \n
    • contextfilter and contextfunction are replaced by\npass_context. evalcontextfilter and\nevalcontextfunction are replaced by pass_eval_context.\nenvironmentfilter and environmentfunction are replaced\nby pass_environment.
    • \n
    • Markup and escape should be imported from MarkupSafe.
    • \n
    • Compiled templates from very old Jinja versions may need to be\nrecompiled.
    • \n
    • Legacy resolve mode for Context subclasses is no longer\nsupported. Override resolve_or_missing instead of\nresolve.
    • \n
    • unicode_urlencode is renamed to url_quote.
    • \n
    \n
  • \n
  • \n

    Add support for native types in macros. :issue:1510

    \n
  • \n
  • \n

    The {% trans %} tag can use pgettext and npgettext by\npassing a context string as the first token in the tag, like\n{% trans "title" %}. :issue:1430

    \n
  • \n
  • \n

    Update valid identifier characters from Python 3.6 to 3.7.\n:pr:1571

    \n
  • \n
  • \n

    Filters and tests decorated with @async_variant are pickleable.\n:pr:1612

    \n
  • \n
  • \n

    Add items filter. :issue:1561

    \n
  • \n
  • \n

    Subscriptions ([0], etc.) can be used after filters, tests, and\ncalls when the environment is in async mode. :issue:1573

    \n
  • \n
  • \n

    The groupby filter is case-insensitive by default, matching\nother comparison filters. Added the case_sensitive parameter to\ncontrol this. :issue:1463

    \n
  • \n
  • \n

    Windows drive-relative path segments in template names will not\nresult in FileSystemLoader and PackageLoader loading from\ndrive-relative paths. :pr:1621

    \n
  • \n
\n

Version 3.0.3

\n

Released 2021-11-09

\n
    \n
  • Fix traceback rewriting internals for Python 3.10 and 3.11.\n:issue:1535
  • \n
  • Fix how the native environment treats leading and trailing spaces\nwhen parsing values on Python 3.10. :pr:1537
  • \n
\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1685/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1362242558, "node_id": "PR_kwDOBm6k_c4-Yqgo", "number": 1799, "title": "Update aiofiles requirement from <0.9,>=0.4 to >=0.4,<22.2", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-09-05T16:13:48Z", "updated_at": "2022-09-05T18:36:44Z", "closed_at": "2022-09-05T18:36:43Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1799", "body": "Updates the requirements on [aiofiles](https://github.com/Tinche/aiofiles) to permit the latest version.\n
\nCommits\n\n
\n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1799.org.readthedocs.build/en/1799/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1799/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1362367821, "node_id": "PR_kwDOBm6k_c4-ZGW6", "number": 1801, "title": "Don't use upper bound dependencies, refs #1800", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-09-05T18:29:28Z", "updated_at": "2022-09-05T18:35:41Z", "closed_at": "2022-09-05T18:35:41Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1801", "body": "See https://iscinumpy.dev/post/bound-version-constraints/\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1801.org.readthedocs.build/en/1801/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1801/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1348394901, "node_id": "PR_kwDOBm6k_c49qmC2", "number": 1792, "title": "Test `--load-extension` in GitHub Actions", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 3, "created_at": "2022-08-23T18:43:29Z", "updated_at": "2022-08-24T00:11:46Z", "closed_at": "2022-08-24T00:11:45Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1792", "body": "Refs:\r\n- #1789\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1792.org.readthedocs.build/en/1792/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1792/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1344823170, "node_id": "PR_kwDOBm6k_c49e3_k", "number": 1789, "title": "Add new entrypoint option to `--load-extension`", "user": {"value": 15178711, "label": "asg017"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 9, "created_at": "2022-08-19T19:27:47Z", "updated_at": "2022-08-23T18:42:52Z", "closed_at": "2022-08-23T18:34:30Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1789", "body": "Closes #1784 \r\n\r\nThe `--load-extension` flag can now accept an optional \"entrypoint\" value, to specify which entrypoint SQLite should load from the given extension. \r\n\r\n```bash\r\n# would load default entrypoint like before\r\ndatasette data.db --load-extension ext\r\n\r\n# loads the extensions with the \"sqlite3_foo_init\" entrpoint\r\ndatasette data.db --load-extension ext:sqlite3_foo_init\r\n\r\n# loads the extensions with the \"sqlite3_bar_init\" entrpoint\r\ndatasette data.db --load-extension ext:sqlite3_bar_init\r\n```\r\n\r\nFor testing, I added a small SQLite extension in C at `tests/ext.c`. If compiled, then pytest will run the unit tests in `test_load_extensions.py`to verify that Datasette loads in extensions correctly (and loads the correct entrypoints). Compiling the extension requires a C compiler, I compiled it on my Mac with:\r\n\r\n```\r\ngcc ext.c -I path/to/sqlite -fPIC -shared -o ext.dylib\r\n```\r\n\r\nWhere `path/to/sqlite` is a directory that contains the SQLite amalgamation header files.\r\n\r\nRe documentation: I added a bit to the help text for `--load-extension` (which I believe should auto-add to documentation?), and the existing extension documentation is spatialite specific. Let me know if a new extensions documentation page would be helpful!", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1789/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1334415381, "node_id": "PR_kwDOBm6k_c488nq6", "number": 1778, "title": "Use Read the Docs action v1", "user": {"value": 244656, "label": "humitos"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 0, "created_at": "2022-08-10T10:30:50Z", "updated_at": "2022-08-20T00:04:17Z", "closed_at": "2022-08-20T00:04:17Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1778", "body": "Read the Docs repository was renamed from `readthedocs/readthedocs-preview` to `readthedocs/actions/`. Now, the `preview` action is under `readthedocs/actions/preview` and is tagged as `v1`\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1778.org.readthedocs.build/en/1778/\n\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1778/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1084193403, "node_id": "PR_kwDOBm6k_c4wDKmb", "number": 1574, "title": "introduce new option for datasette package to use a slim base image", "user": {"value": 33631, "label": "fs111"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 6, "created_at": "2021-12-19T21:18:19Z", "updated_at": "2022-08-15T08:49:31Z", "closed_at": "2022-08-15T08:49:31Z", "author_association": "NONE", "pull_request": "simonw/datasette/pulls/1574", "body": "The official python images on docker hub come with a slim variant that is significantly smaller than the default. The diff does not change the default, but allows to switch to the `slim` variant with commandline switch (`--slim-base-image`)\r\n\r\nSize comparison:\r\n\r\n```\r\n$ datasette package some.db -t fat --install \"datasette-basemap datasette-cluster-map\"\r\n\r\n$ datasette package some.db -t slim --slim-base-image --install \"datasette-basemap datasette-cluster-map\"\r\n\r\n$ docker images\r\nREPOSITORY TAG IMAGE ID CREATED SIZE\r\nfat latest 807b393ace0d 9 seconds ago 978MB\r\nslim latest 31bc5e63505c 8 minutes ago 191MB\r\n\r\n```", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1574/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1307359454, "node_id": "PR_kwDOBm6k_c47iWbd", "number": 1772, "title": "Convert to setup.cfg", "user": {"value": 89725, "label": "kfdm"}, "state": "open", "locked": 0, "assignee": null, "milestone": null, "comments": 0, "created_at": "2022-07-18T03:39:53Z", "updated_at": "2022-07-18T03:39:53Z", "closed_at": null, "author_association": "FIRST_TIME_CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1772", "body": "Recent versions of setuptools can run most things from setup.cfg so one can have a simpler version that does not require executing code on install.\r\n\r\nThe bulk of the changes were automated by running https://pypi.org/project/setup-py-upgrade/ with a few minor edits for the bits that it can not auto convert (the initial `get_long_description()` and `get_version()` can not be automatically converted)", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1772/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1292377561, "node_id": "PR_kwDOBm6k_c46wdOW", "number": 1766, "title": "Keep track of config_dir", "user": {"value": 25778, "label": "eyeseast"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 2, "created_at": "2022-07-03T17:37:02Z", "updated_at": "2022-07-18T01:12:45Z", "closed_at": "2022-07-18T01:12:45Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1766", "body": "Closes #1764 \r\n\r\nSmall change that adds `self.config_dir = config_dir` to `Datasette.__init__`. This will let plugins also use `config_dir`, if available.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1766/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1306020162, "node_id": "PR_kwDOBm6k_c47eFtx", "number": 1769, "title": "Update pytest-asyncio requirement from <0.19,>=0.17 to >=0.17,<0.20", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-07-15T13:10:15Z", "updated_at": "2022-07-18T01:06:38Z", "closed_at": "2022-07-18T01:06:38Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1769", "body": "Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.\n
\nRelease notes\n

Sourced from pytest-asyncio's releases.

\n
\n

pytest-asyncio 0.19.0

\n
\n

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

\n

\"image\"

\n

\"image\"

\n

\"image\"

\n

\"Supported

\n

\"image\"

\n

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

\n

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

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

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

\n

Features

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

Installation

\n\n
\n

... (truncated)

\n
\n
\nChangelog\n

Sourced from pytest-asyncio's changelog.

\n
\n

0.19.0 (22-07-13)

\n
    \n
  • BREAKING: The default asyncio_mode is now strict. [#293](https://github.com/pytest-dev/pytest-asyncio/issues/293) <https://github.com/pytest-dev/pytest-asyncio/issues/293>_
  • \n
  • Removes setup.py since all relevant configuration is present setup.cfg. Users requiring an editable installation of pytest-asyncio need to use pip v21.1 or newer. [#283](https://github.com/pytest-dev/pytest-asyncio/issues/283) <https://github.com/pytest-dev/pytest-asyncio/issues/283>_
  • \n
  • Declare support for Python 3.11.
  • \n
\n

0.18.3 (22-03-25)

\n
    \n
  • Adds pytest-trio <https://pypi.org/project/pytest-trio/>_ to the test dependencies
  • \n
  • Fixes a bug that caused pytest-asyncio to try to set up async pytest_trio fixtures in strict mode. [#298](https://github.com/pytest-dev/pytest-asyncio/issues/298) <https://github.com/pytest-dev/pytest-asyncio/issues/298>_
  • \n
\n

0.18.2 (22-03-03)

\n
    \n
  • Fix asyncio auto mode not marking static methods. [#295](https://github.com/pytest-dev/pytest-asyncio/issues/295) <https://github.com/pytest-dev/pytest-asyncio/issues/295>_
  • \n
  • Fix a compatibility issue with Hypothesis 6.39.0. [#302](https://github.com/pytest-dev/pytest-asyncio/issues/302) <https://github.com/pytest-dev/pytest-asyncio/issues/302>_
  • \n
\n

0.18.1 (22-02-10)

\n
    \n
  • Fixes a regression that prevented async fixtures from working in synchronous tests. [#286](https://github.com/pytest-dev/pytest-asyncio/issues/286) <https://github.com/pytest-dev/pytest-asyncio/issues/286>_
  • \n
\n

0.18.0 (22-02-07)

\n
    \n
  • Raise a warning if @\u200bpytest.mark.asyncio is applied to non-async function. [#275](https://github.com/pytest-dev/pytest-asyncio/issues/275) <https://github.com/pytest-dev/pytest-asyncio/issues/275>_
  • \n
  • Support parametrized event_loop fixture. [#278](https://github.com/pytest-dev/pytest-asyncio/issues/278) <https://github.com/pytest-dev/pytest-asyncio/issues/278>_
  • \n
\n

0.17.2 (22-01-17)

\n
    \n
  • Require typing-extensions on Python`_
  • \n
  • Fix a regression in tests collection introduced by 0.17.1, the plugin works fine with non-python tests again. [#267](https://github.com/pytest-dev/pytest-asyncio/issues/267) <https://github.com/pytest-dev/pytest-asyncio/issues/267>_
  • \n
\n

0.17.1 (22-01-16)

\n
    \n
  • Fixes a bug that prevents async Hypothesis tests from working without explicit asyncio marker when --asyncio-mode=auto is set. [#258](https://github.com/pytest-dev/pytest-asyncio/issues/258) <https://github.com/pytest-dev/pytest-asyncio/issues/258>_
  • \n
  • Fixed a bug that closes the default event loop if the loop doesn't exist [#257](https://github.com/pytest-dev/pytest-asyncio/issues/257) <https://github.com/pytest-dev/pytest-asyncio/issues/257>_
  • \n
  • Added type annotations. [#198](https://github.com/pytest-dev/pytest-asyncio/issues/198) <https://github.com/pytest-dev/pytest-asyncio/issues/198>_
  • \n
  • Show asyncio mode in pytest report headers. [#266](https://github.com/pytest-dev/pytest-asyncio/issues/266) <https://github.com/pytest-dev/pytest-asyncio/issues/266>_
  • \n
  • Relax asyncio_mode type definition; it allows to support pytest 6.1+. [#262](https://github.com/pytest-dev/pytest-asyncio/issues/262) <https://github.com/pytest-dev/pytest-asyncio/issues/262>_
  • \n
\n

0.17.0 (22-01-13)

\n
    \n
  • pytest-asyncio no longer alters existing event loop policies. [#168](https://github.com/pytest-dev/pytest-asyncio/issues/168) <https://github.com/pytest-dev/pytest-asyncio/issues/168>, [#188](https://github.com/pytest-dev/pytest-asyncio/issues/188) <https://github.com/pytest-dev/pytest-asyncio/issues/168>
  • \n
  • Drop support for Python 3.6
  • \n
  • Fixed an issue when pytest-asyncio was used in combination with flaky or inherited asynchronous Hypothesis tests. [#178](https://github.com/pytest-dev/pytest-asyncio/issues/178) <https://github.com/pytest-dev/pytest-asyncio/issues/178>_ [#231](https://github.com/pytest-dev/pytest-asyncio/issues/231) <https://github.com/pytest-dev/pytest-asyncio/issues/231>_
  • \n
  • Added flaky <https://pypi.org/project/flaky/>_ to test dependencies
  • \n
  • Added unused_udp_port and unused_udp_port_factory fixtures (similar to unused_tcp_port and unused_tcp_port_factory counterparts. [#99](https://github.com/pytest-dev/pytest-asyncio/issues/99) <https://github.com/pytest-dev/pytest-asyncio/issues/99>_
  • \n
  • Added the plugin modes: strict, auto, and legacy. See documentation <https://github.com/pytest-dev/pytest-asyncio#modes>_ for details. [#125](https://github.com/pytest-dev/pytest-asyncio/issues/125) <https://github.com/pytest-dev/pytest-asyncio/issues/125>_
  • \n
  • Correctly process KeyboardInterrupt during async fixture setup phase [#219](https://github.com/pytest-dev/pytest-asyncio/issues/219) <https://github.com/pytest-dev/pytest-asyncio/issues/219>_
  • \n
\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1769/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1280136357, "node_id": "PR_kwDOBm6k_c46Hsvj", "number": 1760, "title": "Bump furo from 2022.4.7 to 2022.6.21", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-06-22T13:22:31Z", "updated_at": "2022-07-18T01:06:27Z", "closed_at": "2022-07-18T01:06:27Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1760", "body": "Bumps [furo](https://github.com/pradyunsg/furo) from 2022.4.7 to 2022.6.21.\n
\nChangelog\n

Sourced from furo's changelog.

\n
\n

Changelog

\n\n

2022.06.21 -- Opulent Opal

\n
    \n
  • Fix docutils <= 0.17.x compatibility
  • \n
  • Bump to the latest Node.js LTS
  • \n
\n

2022.06.04.1 -- Naughty Nickel bugfix

\n
    \n
  • Fix the URL used in the "Edit this page" for Read the Docs builds.
  • \n
\n

2022.06.04 -- Naughty Nickel

\n
    \n
  • \u2728 Advertise Sphinx 5 compatibility.
  • \n
  • \u2728 Change to basic-ng as the base theme (from {pypi}sphinx-basic-ng).
  • \n
  • Document site-wide announcement banners.
  • \n
  • Drop the pin on pygments.
  • \n
  • Improve edit button, using basic-ng's edit-this-page component.
  • \n
  • Tweak headings to better match what users expect.
  • \n
  • Tweak how Sphinx's default HTML is rendered, using docutils post-transforms (this replaces parsing+modifying it with BeautifulSoup).
  • \n
  • When built with docutils 0.18, footnotes are rendered differently and stylised differently in Furo.
  • \n
\n

2022.04.07 -- Magical Mauve

\n
    \n
  • \u2728 Make sphinx-copybutton look better.
  • \n
  • Add margin to indentations in line blocks.
  • \n
  • Add styling for non-arabic list styles
  • \n
  • Add support for html_baseurl.
  • \n
  • Improve "Edit this page" icon to be more accessible.
  • \n
  • Improve html_sidebars example.
  • \n
  • Tweak positioning of back to top on desktop.
  • \n
\n

2022.03.04 -- Lucent Lilac

\n
    \n
  • Improve support for print media.
  • \n
  • Reduce heading sizes for h3 and below.
  • \n
  • Don't allow selecting headerlink content.
  • \n
  • Improve how overflow wrapping is handled.
  • \n
  • Add a reference from the configuration variables to the color customisation page.
  • \n
\n

2022.02.23 -- Keen Kobi

\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=furo&package-manager=pip&previous-version=2022.4.7&new-version=2022.6.21)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1760/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1287325944, "node_id": "PR_kwDOBm6k_c46ftHo", "number": 1763, "title": "Bump black from 22.1.0 to 22.6.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-06-28T13:11:32Z", "updated_at": "2022-06-28T17:40:25Z", "closed_at": "2022-06-28T17:40:25Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1763", "body": "Bumps [black](https://github.com/psf/black) from 22.1.0 to 22.6.0.\n
\nRelease notes\n

Sourced from black's releases.

\n
\n

22.6.0

\n

Style

\n
    \n
  • Fix unstable formatting involving #fmt: skip and # fmt:skip comments (notice the lack of spaces) (#2970)
  • \n
\n

Preview style

\n
    \n
  • Docstring quotes are no longer moved if it would violate the line length limit (#3044)
  • \n
  • Parentheses around return annotations are now managed (#2990)
  • \n
  • Remove unnecessary parentheses around awaited objects (#2991)
  • \n
  • Remove unnecessary parentheses in with statements (#2926)
  • \n
  • Remove trailing newlines after code block open (#3035)
  • \n
\n

Integrations

\n
    \n
  • Add scripts/migrate-black.py script to ease introduction of Black to a Git project (#3038)
  • \n
\n

Output

\n
    \n
  • Output Python version and implementation as part of --version flag (#2997)
  • \n
\n

Packaging

\n
    \n
  • Use tomli instead of tomllib on Python 3.11 builds where tomllib is not available (#2987)
  • \n
\n

Parser

\n
    \n
  • PEP 654 syntax (for example, except *ExceptionGroup:) is now supported (#3016)
  • \n
  • PEP 646 syntax (for example, Array[Batch, *Shape] or def fn(*args: *T) -> None) is now supported (#3071)
  • \n
\n

Vim Plugin

\n
    \n
  • Fix strtobool function. It didn't parse true/on/false/off. (#3025)
  • \n
\n

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

\n
\n

Thank you!

\n
    \n
  • @\u200bjpy-git for improving our parentheses formatting significantly
  • \n
  • @\u200bsiuryan for fixing a fmt: skip bug, making it a little less annoying to use :)
  • \n
  • @\u200bisidentical for implementing support for PEP 654 and 646 syntax
  • \n
  • @\u200bdefntvdm for fixing our vim plugin, especially as we (the maintainers) don't really know vim script sadly
  • \n
  • @\u200bidorrington92 for fixing the docstring bug where Black would move the closing quotes causing it to violate the line length limit (whoops!)
  • \n
  • @\u200bhbrunn for contributing the migrate-black script
  • \n
  • @\u200bsaroad2 for improving newline handling after code blocks and test infrastructure improvements
  • \n
\n

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

\n\n
\n

... (truncated)

\n
\n
\nChangelog\n

Sourced from black's changelog.

\n
\n

22.6.0

\n

Style

\n
    \n
  • Fix unstable formatting involving #fmt: skip and # fmt:skip comments (notice the\nlack of spaces) (#2970)
  • \n
\n

Preview style

\n
    \n
  • Docstring quotes are no longer moved if it would violate the line length limit (#3044)
  • \n
  • Parentheses around return annotations are now managed (#2990)
  • \n
  • Remove unnecessary parentheses around awaited objects (#2991)
  • \n
  • Remove unnecessary parentheses in with statements (#2926)
  • \n
  • Remove trailing newlines after code block open (#3035)
  • \n
\n

Integrations

\n
    \n
  • Add scripts/migrate-black.py script to ease introduction of Black to a Git project\n(#3038)
  • \n
\n

Output

\n
    \n
  • Output Python version and implementation as part of --version flag (#2997)
  • \n
\n

Packaging

\n
    \n
  • Use tomli instead of tomllib on Python 3.11 builds where tomllib is not\navailable (#2987)
  • \n
\n

Parser

\n
    \n
  • PEP 654 syntax (for example,\nexcept *ExceptionGroup:) is now supported (#3016)
  • \n
  • PEP 646 syntax (for example,\nArray[Batch, *Shape] or def fn(*args: *T) -> None) is now supported (#3071)
  • \n
\n

Vim Plugin

\n
    \n
  • Fix strtobool function. It didn't parse true/on/false/off. (#3025)
  • \n
\n

22.3.0

\n

Preview style

\n
    \n
  • Code cell separators #%% are now standardised to # %% (#2919)
  • \n
  • Remove unnecessary parentheses from except statements (#2939)
  • \n
  • Remove unnecessary parentheses from tuple unpacking in for loops (#2945)
  • \n
  • Avoid magic-trailing-comma in single-element subscripts (#2942)
  • \n
\n

Configuration

\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\n[![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)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1763/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1184850337, "node_id": "PR_kwDOBm6k_c41OrSL", "number": 1693, "title": "Bump black from 22.1.0 to 22.3.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 3, "created_at": "2022-03-29T13:11:09Z", "updated_at": "2022-06-28T13:11:38Z", "closed_at": "2022-06-28T13:11:36Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1693", "body": "Bumps [black](https://github.com/psf/black) from 22.1.0 to 22.3.0.\n
\nRelease notes\n

Sourced from black's releases.

\n
\n

22.3.0

\n

Preview style

\n
    \n
  • Code cell separators #%% are now standardised to # %% (#2919)
  • \n
  • Remove unnecessary parentheses from except statements (#2939)
  • \n
  • Remove unnecessary parentheses from tuple unpacking in for loops (#2945)
  • \n
  • Avoid magic-trailing-comma in single-element subscripts (#2942)
  • \n
\n

Configuration

\n
    \n
  • Do not format __pypackages__ directories by default (#2836)
  • \n
  • Add support for specifying stable version with --required-version (#2832).
  • \n
  • Avoid crashing when the user has no homedir (#2814)
  • \n
  • Avoid crashing when md5 is not available (#2905)
  • \n
  • Fix handling of directory junctions on Windows (#2904)
  • \n
\n

Documentation

\n
    \n
  • Update pylint config documentation (#2931)
  • \n
\n

Integrations

\n
    \n
  • Move test to disable plugin in Vim/Neovim, which speeds up loading (#2896)
  • \n
\n

Output

\n
    \n
  • In verbose, mode, log when Black is using user-level config (#2861)
  • \n
\n

Packaging

\n
    \n
  • Fix Black to work with Click 8.1.0 (#2966)
  • \n
  • On Python 3.11 and newer, use the standard library's tomllib instead of tomli\n(#2903)
  • \n
  • black-primer, the deprecated internal devtool, has been removed and copied to a\nseparate repository (#2924)
  • \n
\n

Parser

\n
    \n
  • Black can now parse starred expressions in the target of for and async for\nstatements, e.g for item in *items_1, *items_2: pass (#2879).
  • \n
\n
\n
\n
\nChangelog\n

Sourced from black's changelog.

\n
\n

22.3.0

\n

Preview style

\n
    \n
  • Code cell separators #%% are now standardised to # %% (#2919)
  • \n
  • Remove unnecessary parentheses from except statements (#2939)
  • \n
  • Remove unnecessary parentheses from tuple unpacking in for loops (#2945)
  • \n
  • Avoid magic-trailing-comma in single-element subscripts (#2942)
  • \n
\n

Configuration

\n
    \n
  • Do not format __pypackages__ directories by default (#2836)
  • \n
  • Add support for specifying stable version with --required-version (#2832).
  • \n
  • Avoid crashing when the user has no homedir (#2814)
  • \n
  • Avoid crashing when md5 is not available (#2905)
  • \n
  • Fix handling of directory junctions on Windows (#2904)
  • \n
\n

Documentation

\n
    \n
  • Update pylint config documentation (#2931)
  • \n
\n

Integrations

\n
    \n
  • Move test to disable plugin in Vim/Neovim, which speeds up loading (#2896)
  • \n
\n

Output

\n
    \n
  • In verbose, mode, log when Black is using user-level config (#2861)
  • \n
\n

Packaging

\n
    \n
  • Fix Black to work with Click 8.1.0 (#2966)
  • \n
  • On Python 3.11 and newer, use the standard library's tomllib instead of tomli\n(#2903)
  • \n
  • black-primer, the deprecated internal devtool, has been removed and copied to a\nseparate repository (#2924)
  • \n
\n

Parser

\n
    \n
  • Black can now parse starred expressions in the target of for and async for\nstatements, e.g for item in *items_1, *items_2: pass (#2879).
  • \n
\n
\n
\n
\nCommits\n\n
\n
\n\n\n[![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)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1693/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1261826957, "node_id": "PR_kwDOBm6k_c45Kojn", "number": 1753, "title": "Bump furo from 2022.4.7 to 2022.6.4.1", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 2, "created_at": "2022-06-06T13:10:22Z", "updated_at": "2022-06-22T13:22:37Z", "closed_at": "2022-06-22T13:22:35Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1753", "body": "Bumps [furo](https://github.com/pradyunsg/furo) from 2022.4.7 to 2022.6.4.1.\n
\nChangelog\n

Sourced from furo's changelog.

\n
\n

Changelog

\n\n

2022.06.04.1 -- Naughty Nickel bugfix

\n
    \n
  • Fix the URL used in the "Edit this page" for Read the Docs builds.
  • \n
\n

2022.06.04 -- Naughty Nickel

\n
    \n
  • \u2728 Advertise Sphinx 5 compatibility.
  • \n
  • \u2728 Change to basic-ng as the base theme (from {pypi}sphinx-basic-ng).
  • \n
  • Document site-wide announcement banners.
  • \n
  • Drop the pin on pygments.
  • \n
  • Improve edit button, using basic-ng's edit-this-page component.
  • \n
  • Tweak headings to better match what users expect.
  • \n
  • Tweak how Sphinx's default HTML is rendered, using docutils post-transforms (this replaces parsing+modifying it with BeautifulSoup).
  • \n
  • When built with docutils 0.18, footnotes are rendered differently and stylised differently in Furo.
  • \n
\n

2022.04.07 -- Magical Mauve

\n
    \n
  • \u2728 Make sphinx-copybutton look better.
  • \n
  • Add margin to indentations in line blocks.
  • \n
  • Add styling for non-arabic list styles
  • \n
  • Add support for html_baseurl.
  • \n
  • Improve "Edit this page" icon to be more accessible.
  • \n
  • Improve html_sidebars example.
  • \n
  • Tweak positioning of back to top on desktop.
  • \n
\n

2022.03.04 -- Lucent Lilac

\n
    \n
  • Improve support for print media.
  • \n
  • Reduce heading sizes for h3 and below.
  • \n
  • Don't allow selecting headerlink content.
  • \n
  • Improve how overflow wrapping is handled.
  • \n
  • Add a reference from the configuration variables to the color customisation page.
  • \n
\n

2022.02.23 -- Keen Kobi

\n
    \n
  • \u2728 Add a "Back to Top" button that shows up when scrolling up.
  • \n
  • Add a URL to GitHub in Project-URLs.
  • \n
  • Break long words in the prev/next buttons.
  • \n
  • Fix includes in Kitchen sink.
  • \n
\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=furo&package-manager=pip&previous-version=2022.4.7&new-version=2022.6.4.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1753/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1275523220, "node_id": "PR_kwDOBm6k_c454SlE", "number": 1759, "title": "Extract facet portions of table.html out into included templates", "user": {"value": 19872, "label": "nsmgr8"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 3, "created_at": "2022-06-17T22:04:04Z", "updated_at": "2022-06-20T18:05:45Z", "closed_at": "2022-06-20T18:05:45Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1759", "body": "To allow users customise the facet content as they would prefer such as sorting of facet results. ordering of suggested facets etc.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1759/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1226106354, "node_id": "PR_kwDOBm6k_c43U1z7", "number": 1740, "title": "chore: Set permissions for GitHub actions", "user": {"value": 172697, "label": "naveensrinivasan"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-05-05T01:03:08Z", "updated_at": "2022-05-31T19:28:41Z", "closed_at": "2022-05-31T19:28:40Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1740", "body": " Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won\u2019t be able to do much.\n\n- Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions\n\nhttps://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions\n\nhttps://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs\n\n[Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)\n\nSigned-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1740/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1223312279, "node_id": "PR_kwDOBm6k_c43MIU0", "number": 1736, "title": "Clean up compatibility with Pyodide", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 0, "created_at": "2022-05-02T20:14:38Z", "updated_at": "2022-05-02T20:15:28Z", "closed_at": "2022-05-02T20:15:27Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1736", "body": "Closes #1735, closes #1733", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1736/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1213281044, "node_id": "PR_kwDOBm6k_c42qyUI", "number": 1717, "title": "Add timeout option to Cloudrun build", "user": {"value": 127565, "label": "wragge"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 2, "created_at": "2022-04-23T11:51:21Z", "updated_at": "2022-04-24T14:03:08Z", "closed_at": "2022-04-24T14:03:08Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1717", "body": "I've found that the Cloudrun build phase often hits a timeout limit with large databases. I believe the default timeout is 10 minutes. This pull request just adds a `--timeout` option to the cloudrun `publish` command and passes the value on to the build step.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1717/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 810507413, "node_id": "MDExOlB1bGxSZXF1ZXN0NTc1MTg3NDU3", "number": 1229, "title": "ensure immutable databses when starting in configuration directory mode with", "user": {"value": 295329, "label": "camallen"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 3, "created_at": "2021-02-17T20:18:26Z", "updated_at": "2022-04-22T13:16:36Z", "closed_at": "2021-03-29T00:17:32Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1229", "body": "fixes #1224 \r\n\r\nThis PR ensures all databases found in a configuration directory that match the files in `inspect-data.json` will be set to `immutable` as outlined in https://docs.datasette.io/en/latest/settings.html#configuration-directory-mode\r\n\r\nspecifically on building the `datasette` instance it checks:\r\n- if `immutables` is an empty tuple - as passed by the cli code\r\n- if `immutables` is the default function value `None` - when it's not explicitly set\r\n\r\nAnd correctly builds the immutable database list from the `inspect-data[file]` keys.\r\n\r\nNote for this to work the `inspect-data.json` file must contain `file` paths which are relative to the configuration directory otherwise the file paths won't match and the dbs won't be set to immutable. \r\n\r\nI couldn't find an easy way to test this due to the way `make_app_client` works, happy to take directions on adding a test for this. \r\n\r\nI've updated the relevant docs as well, i.e. use the `inspect` cli cmd from the config directory path to create the relevant file\r\n```\r\ncd $config_dir\r\ndatasette inspect *.db --inspect-file=inspect-data.json\r\n```\r\nhttps://docs.datasette.io/en/latest/performance.html#using-datasette-inspect", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1229/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1184850675, "node_id": "PR_kwDOBm6k_c41OrWq", "number": 1694, "title": "Update click requirement from <8.1.0,>=7.1.1 to >=7.1.1,<8.2.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-03-29T13:11:23Z", "updated_at": "2022-04-08T23:05:10Z", "closed_at": "2022-04-08T23:05:09Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1694", "body": "Updates the requirements on [click](https://github.com/pallets/click) to permit the latest version.\n
\nRelease notes\n

Sourced from click's releases.

\n
\n

8.1.0

\n

This is a feature release, which includes new features and removes previously deprecated features. The 8.1.x branch is now the supported bugfix branch, the 8.0.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as pip-tools to pin all dependencies and control upgrades.

\n\n
\n
\n
\nChangelog\n

Sourced from click's changelog.

\n
\n

Version 8.1.0

\n

Released 2022-03-28

\n
    \n
  • \n

    Drop support for Python 3.6. :pr:2129

    \n
  • \n
  • \n

    Remove previously deprecated code. :pr:2130

    \n
      \n
    • Group.resultcallback is renamed to result_callback.
    • \n
    • autocompletion parameter to Command is renamed to\nshell_complete.
    • \n
    • get_terminal_size is removed, use\nshutil.get_terminal_size instead.
    • \n
    • get_os_args is removed, use sys.argv[1:] instead.
    • \n
    \n
  • \n
  • \n

    Rely on :pep:538 and :pep:540 to handle selecting UTF-8 encoding\ninstead of ASCII. Click's locale encoding detection is removed.\n:issue:2198

    \n
  • \n
  • \n

    Single options boolean flags with show_default=True only show\nthe default if it is True. :issue:1971

    \n
  • \n
  • \n

    The command and group decorators can be applied with or\nwithout parentheses. :issue:1359

    \n
  • \n
  • \n

    The Path type can check whether the target is executable.\n:issue:1961

    \n
  • \n
  • \n

    Command.show_default overrides Context.show_default, instead\nof the other way around. :issue:1963

    \n
  • \n
  • \n

    Parameter decorators and @group handles cls=None the same as\nnot passing cls. @option handles help=None the same as\nnot passing help. :issue:[#1959](https://github.com/pallets/click/issues/1959)

    \n
  • \n
  • \n

    A flag option with required=True requires that the flag is\npassed instead of choosing the implicit default value. :issue:1978

    \n
  • \n
  • \n

    Indentation in help text passed to Option and Command is\ncleaned the same as using the @option and @command\ndecorators does. A command's epilog and short_help are also\nprocessed. :issue:1985

    \n
  • \n
  • \n

    Store unprocessed Command.help, epilog and short_help\nstrings. Processing is only done when formatting help text for\noutput. :issue:2149

    \n
  • \n
  • \n

    Allow empty str input for prompt() when\nconfirmation_prompt=True and default="". :issue:2157

    \n
  • \n
  • \n

    Windows glob pattern expansion doesn't fail if a value is an invalid\npattern. :issue:2195

    \n
  • \n
  • \n

    It's possible to pass a list of params to @command. Any\nparams defined with decorators are appended to the passed params.\n:issue:2131.

    \n
  • \n
  • \n

    @command decorator is annotated as returning the correct type if\na cls argument is used. :issue:2211

    \n
  • \n
  • \n

    A Group with invoke_without_command=True and chain=False\nwill invoke its result callback with the group function's return\nvalue. :issue:2124

    \n
  • \n
\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1694/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1197298420, "node_id": "PR_kwDOBm6k_c4132NJ", "number": 1703, "title": "Update beautifulsoup4 requirement from <4.11.0,>=4.8.1 to >=4.8.1,<4.12.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-04-08T13:08:53Z", "updated_at": "2022-04-08T22:51:05Z", "closed_at": "2022-04-08T22:51:05Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1703", "body": "Updates the requirements on [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) to permit the latest version.\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1703/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1090055810, "node_id": "PR_kwDOBm6k_c4wWDxH", "number": 1582, "title": "don't set far expiry if hash is '000'", "user": {"value": 536941, "label": "fgregg"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-12-28T18:16:13Z", "updated_at": "2022-03-24T04:07:58Z", "closed_at": "2022-03-24T04:07:58Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1582", "body": "This will close #1581.\r\n\r\nI couldn't find any unit tests related to the testing hashed urls, and I know that you want to break that code out of the core application (#1561), so I'm not quite sure what you would like me to for testing.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1582/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1173828092, "node_id": "PR_kwDOBm6k_c40q1eP", "number": 1665, "title": "Pin setup-gcloud to v0 instead of master", "user": {"value": 408570, "label": "sethvargo"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-03-18T17:17:22Z", "updated_at": "2022-03-23T19:31:10Z", "closed_at": "2022-03-23T17:55:39Z", "author_association": "NONE", "pull_request": "simonw/datasette/pulls/1665", "body": "setup-gcloud will be updating the branch name from master to main in\r\na future release. Even though GitHub will establish redirects, this\r\nwill break any GitHub Actions workflows that pin to master. This PR\r\nupdates your GitHub Actions workflows to pin to v0, which is the\r\nrecommended best practice.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1665/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1173017980, "node_id": "PR_kwDOBm6k_c40oRq-", "number": 1664, "title": "Remove hashed URL mode", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 7, "created_at": "2022-03-17T23:19:10Z", "updated_at": "2022-03-19T00:12:04Z", "closed_at": "2022-03-19T00:12:04Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1664", "body": "Refs #1661.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1664/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1168357113, "node_id": "PR_kwDOBm6k_c40ZRDA", "number": 1656, "title": "Update pytest requirement from <7.1.0,>=5.2.2 to >=5.2.2,<7.2.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-03-14T13:11:53Z", "updated_at": "2022-03-15T18:03:03Z", "closed_at": "2022-03-15T18:03:02Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1656", "body": "Updates the requirements on [pytest](https://github.com/pytest-dev/pytest) to permit the latest version.\n
\nRelease notes\n

Sourced from pytest's releases.

\n
\n

7.1.0

\n

pytest 7.1.0 (2022-03-13)

\n

Breaking Changes

\n
    \n
  • \n

    #8838: As per our policy, the following features have been deprecated in the 6.X series and are now\nremoved:

    \n
      \n
    • pytest._fillfuncargs function.
    • \n
    • pytest_warning_captured hook - use pytest_warning_recorded instead.
    • \n
    • -k -foobar syntax - use -k 'not foobar' instead.
    • \n
    • -k foobar: syntax.
    • \n
    • pytest.collect module - import from pytest directly.
    • \n
    \n

    For more information consult\nDeprecations and Removals in the docs.

    \n
  • \n
  • \n

    #9437: Dropped support for Python 3.6, which reached end-of-life at 2021-12-23.

    \n
  • \n
\n

Improvements

\n
    \n
  • \n

    #5192: Fixed test output for some data types where -v would show less information.

    \n

    Also, when showing diffs for sequences, -q would produce full diffs instead of the expected diff.

    \n
  • \n
  • \n

    #9362: pytest now avoids specialized assert formatting when it is detected that the default __eq__ is overridden in attrs or dataclasses.

    \n
  • \n
  • \n

    #9536: When -vv is given on command line, show skipping and xfail reasons in full instead of truncating them to fit the terminal width.

    \n
  • \n
  • \n

    #9644: More information about the location of resources that led Python to raise ResourceWarning{.interpreted-text role="class"} can now\nbe obtained by enabling tracemalloc{.interpreted-text role="mod"}.

    \n

    See resource-warnings{.interpreted-text role="ref"} for more information.

    \n
  • \n
  • \n

    #9678: More types are now accepted in the ids argument to @pytest.mark.parametrize.\nPreviously only [str]{.title-ref}, [float]{.title-ref}, [int]{.title-ref} and [bool]{.title-ref} were accepted;\nnow [bytes]{.title-ref}, [complex]{.title-ref}, [re.Pattern]{.title-ref}, [Enum]{.title-ref} and anything with a [__name__]{.title-ref} are also accepted.

    \n
  • \n
  • \n

    #9692: pytest.approx{.interpreted-text role="func"} now raises a TypeError{.interpreted-text role="class"} when given an unordered sequence (such as set{.interpreted-text role="class"}).

    \n

    Note that this implies that custom classes which only implement __iter__ and __len__ are no longer supported as they don't guarantee order.

    \n
  • \n
\n

Bug Fixes

\n
    \n
  • #8242: The deprecation of raising unittest.SkipTest{.interpreted-text role="class"} to skip collection of\ntests during the pytest collection phase is reverted - this is now a supported\nfeature again.
  • \n
  • #9493: Symbolic link components are no longer resolved in conftest paths.\nThis means that if a conftest appears twice in collection tree, using symlinks, it will be executed twice.
  • \n
\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1656/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1169895600, "node_id": "PR_kwDOBm6k_c40eW7C", "number": 1659, "title": "Tilde encoding", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-03-15T16:19:07Z", "updated_at": "2022-03-15T18:01:58Z", "closed_at": "2022-03-15T18:01:57Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1659", "body": "Refs #1657", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1659/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1160432941, "node_id": "PR_kwDOBm6k_c4z_p6S", "number": 1648, "title": "Use dash encoding for table names and row primary keys in URLs", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 7, "created_at": "2022-03-05T19:50:45Z", "updated_at": "2022-03-07T15:38:30Z", "closed_at": "2022-03-07T15:38:30Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1648", "body": "Refs #1439.\r\n\r\n- [x] Build `dash_encode` / `dash_decode` functions\r\n- [x] Use dash encoding for row primary keys\r\n- [x] Use dash encoding for `?_next=` pagination tokens\r\n- [x] Use dash encoding for table names in URLs\r\n- [x] Use dash encoding for database name\r\n- ~~Implement redirects from previous `%` URLs that replace those with `-`~~ - separate issue: #1650", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1648/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1160677684, "node_id": "PR_kwDOBm6k_c40AW_v", "number": 1649, "title": "Add /opt/homebrew to where spatialite extension can be found", "user": {"value": 2182, "label": "danp"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-03-06T18:09:35Z", "updated_at": "2022-03-06T22:46:00Z", "closed_at": "2022-03-06T19:39:15Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1649", "body": "Helps homebrew on Apple Silicon setups find spatialite without needing\r\na full path.\r\n\r\nSimilar to #1114", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1649/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1098275181, "node_id": "PR_kwDOBm6k_c4wwNCl", "number": 1589, "title": "Typo in docs about default redirect status code", "user": {"value": 3556, "label": "davidbgk"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-01-10T19:14:36Z", "updated_at": "2022-03-06T02:27:49Z", "closed_at": "2022-03-06T01:58:32Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1589", "body": null, "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1589/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1108084641, "node_id": "PR_kwDOBm6k_c4xQ0uZ", "number": 1602, "title": "Update pytest-timeout requirement from <2.1,>=1.4.2 to >=1.4.2,<2.2", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-01-19T13:11:50Z", "updated_at": "2022-03-06T01:41:50Z", "closed_at": "2022-03-06T01:41:49Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1602", "body": "Updates the requirements on [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) to permit the latest version.\n
\nCommits\n\n
\n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1602/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1112633417, "node_id": "PR_kwDOBm6k_c4xfryi", "number": 1610, "title": "Update asgiref requirement from <3.5.0,>=3.2.10 to >=3.2.10,<3.6.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 0, "created_at": "2022-01-24T13:14:18Z", "updated_at": "2022-03-06T01:30:27Z", "closed_at": "2022-03-06T01:30:27Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1610", "body": "Updates the requirements on [asgiref](https://github.com/django/asgiref) to permit the latest version.\n
\nChangelog\n

Sourced from asgiref's changelog.

\n
\n

3.5.0 (2022-01-22)

\n
    \n
  • \n

    Python 3.6 is no longer supported, and asyncio calls have been changed to\nuse only the modern versions of the APIs as a result

    \n
  • \n
  • \n

    Several causes of RuntimeErrors in cases where an event loop was assigned\nto a thread but not running

    \n
  • \n
  • \n

    Speed improvements in the Local class

    \n
  • \n
\n

3.4.1 (2021-07-01)

\n
    \n
  • Fixed an issue with the deadlock detection where it had false positives\nduring exception handling.
  • \n
\n

3.4.0 (2021-06-27)

\n
    \n
  • \n

    Calling sync_to_async directly from inside itself (which causes a deadlock\nwhen in the default, thread-sensitive mode) now has deadlock detection.

    \n
  • \n
  • \n

    asyncio usage has been updated to use the new versions of get_event_loop,\nensure_future, wait and gather, avoiding deprecation warnings in Python 3.10.\nPython 3.6 installs continue to use the old versions; this is only for 3.7+

    \n
  • \n
  • \n

    sync_to_async and async_to_sync now have improved type hints that pass\nthrough the underlying function type correctly.

    \n
  • \n
  • \n

    All Websocket* types are now spelled WebSocket, to match our specs and the\nofficial spelling. The old names will work until release 3.5.0, but will\nraise deprecation warnings.

    \n
  • \n
  • \n

    The typing for WebSocketScope and HTTPScope's extensions key has been\nfixed.

    \n
  • \n
\n

3.3.4 (2021-04-06)

\n
    \n
  • The async_to_sync type error is now a warning due the high false negative\nrate when trying to detect coroutine-returning callables in Python.
  • \n
\n

3.3.3 (2021-04-06)

\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1610/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1124191982, "node_id": "PR_kwDOBm6k_c4yFTCp", "number": 1629, "title": "Update pytest requirement from <6.3.0,>=5.2.2 to >=5.2.2,<7.1.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-02-04T13:14:10Z", "updated_at": "2022-03-06T01:30:06Z", "closed_at": "2022-03-06T01:30:06Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1629", "body": "Updates the requirements on [pytest](https://github.com/pytest-dev/pytest) to permit the latest version.\n
\nRelease notes\n

Sourced from pytest's releases.

\n
\n

7.0.0

\n

pytest 7.0.0 (2022-02-03)

\n

(Please see the full set of changes for this release also in the 7.0.0rc1 notes below)

\n

Deprecations

\n
    \n
  • \n

    #9488: If custom subclasses of nodes like pytest.Item{.interpreted-text role="class"} override the\n__init__ method, they should take **kwargs. See\nuncooperative-constructors-deprecated{.interpreted-text role="ref"} for details.

    \n

    Note that a deprection warning is only emitted when there is a conflict in the\narguments pytest expected to pass. This deprecation was already part of pytest\n7.0.0rc1 but wasn't documented.

    \n
  • \n
\n

Bug Fixes

\n
    \n
  • #9355: Fixed error message prints function decorators when using assert in Python 3.8 and above.
  • \n
  • #9396: Ensure pytest.Config.inifile{.interpreted-text role="attr"} is available during the pytest_cmdline_main <_pytest.hookspec.pytest_cmdline_main>{.interpreted-text role="func"} hook (regression during 7.0.0rc1).
  • \n
\n

Improved Documentation

\n
    \n
  • #9404: Added extra documentation on alternatives to common misuses of [pytest.warns(None)]{.title-ref} ahead of its deprecation.
  • \n
  • #9505: Clarify where the configuration files are located. To avoid confusions documentation mentions\nthat configuration file is located in the root of the repository.
  • \n
\n

Trivial/Internal Changes

\n
    \n
  • #9521: Add test coverage to assertion rewrite path.
  • \n
\n

pytest 7.0.0rc1 (2021-12-06)

\n

Breaking Changes

\n
    \n
  • \n

    #7259: The Node.reportinfo() <non-python tests>{.interpreted-text role="ref"} function first return value type has been expanded from [py.path.local | str]{.title-ref} to [os.PathLike[str] | str]{.title-ref}.

    \n

    Most plugins which refer to [reportinfo()]{.title-ref} only define it as part of a custom pytest.Item{.interpreted-text role="class"} implementation.\nSince [py.path.local]{.title-ref} is a [os.PathLike[str]]{.title-ref}, these plugins are unaffacted.

    \n

    Plugins and users which call [reportinfo()]{.title-ref}, use the first return value and interact with it as a [py.path.local]{.title-ref}, would need to adjust by calling [py.path.local(fspath)]{.title-ref}.\nAlthough preferably, avoid the legacy [py.path.local]{.title-ref} and use [pathlib.Path]{.title-ref}, or use [item.location]{.title-ref} or [item.path]{.title-ref}, instead.

    \n

    Note: pytest was not able to provide a deprecation period for this change.

    \n
  • \n
\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1629/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1125973221, "node_id": "PR_kwDOBm6k_c4yK44E", "number": 1631, "title": "Update pytest-asyncio requirement from <0.17,>=0.10 to >=0.10,<0.19", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-02-07T13:13:19Z", "updated_at": "2022-03-06T01:29:54Z", "closed_at": "2022-03-06T01:29:53Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1631", "body": "Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.\n
\nRelease notes\n

Sourced from pytest-asyncio's releases.

\n
\n

pytest-asyncio 0.18.0

\n
\n

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

\n

\"image\"

\n

\"image\"

\n

\"image\"

\n

\"Supported

\n

\"image\"

\n

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

\n

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

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

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

\n

Features

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

Installation

\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1631/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1101705012, "node_id": "PR_kwDOBm6k_c4w7eqc", "number": 1593, "title": "Update pytest-asyncio requirement from <0.17,>=0.10 to >=0.10,<0.18", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 2, "created_at": "2022-01-13T13:11:50Z", "updated_at": "2022-02-07T13:13:24Z", "closed_at": "2022-02-07T13:13:23Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1593", "body": "Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.\n
\nRelease notes\n

Sourced from pytest-asyncio's releases.

\n
\n

pytest-asyncio 0.17.0

\n
\n

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

\n

\"image\"

\n

\"image\"

\n

\"image\"

\n

\"Supported

\n

\"image\"

\n

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

\n

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

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

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

\n

Features

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

Installation

\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1593/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1120990806, "node_id": "PR_kwDOBm6k_c4x6zZ5", "number": 1617, "title": "Ensure template_path always uses \"/\" to match jinja", "user": {"value": 3526913, "label": "cb160"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 3, "created_at": "2022-02-01T17:20:30Z", "updated_at": "2022-02-03T01:58:35Z", "closed_at": "2022-02-03T01:58:35Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1617", "body": "This PR shoudl fix #1545 \r\n\r\nThe existing code substituted / for \\, assuming this was the right behaviour for windows. But on Windows, Jinja still uses / for the template list - See https://github.com/pallets/jinja/blob/896a62135bcc151f2997e028c5125bec2cb2431f/src/jinja2/loaders.py#L225", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1617/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1122451096, "node_id": "PR_kwDOBm6k_c4x_mXy", "number": 1626, "title": "Try test suite against macOS and Windows", "user": {"value": 9599, "label": "simonw"}, "state": "open", "locked": 0, "assignee": null, "milestone": null, "comments": 3, "created_at": "2022-02-02T22:26:51Z", "updated_at": "2022-02-03T01:22:44Z", "closed_at": null, "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1626", "body": "Refs #1625", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1626/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1119413338, "node_id": "PR_kwDOBm6k_c4x1kCu", "number": 1616, "title": "Bump black from 21.12b0 to 22.1.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 2, "created_at": "2022-01-31T13:13:46Z", "updated_at": "2022-02-02T22:23:52Z", "closed_at": "2022-02-02T22:23:51Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1616", "body": "Bumps [black](https://github.com/psf/black) from 21.12b0 to 22.1.0.\n
\nRelease notes\n

Sourced from black's releases.

\n
\n

22.1.0

\n

At long last, Black is no longer a beta product! This is the first non-beta release and the first release covered by our new stability policy.

\n

Highlights

\n
    \n
  • Remove Python 2 support (#2740)
  • \n
  • Introduce the --preview flag (#2752)
  • \n
\n

Style

\n
    \n
  • Deprecate --experimental-string-processing and move the functionality under --preview (#2789)
  • \n
  • For stubs, one blank line between class attributes and methods is now kept if there's at least one pre-existing blank line (#2736)
  • \n
  • Black now normalizes string prefix order (#2297)
  • \n
  • Remove spaces around power operators if both operands are simple (#2726)
  • \n
  • Work around bug that causes unstable formatting in some cases in the presence of the magic trailing comma (#2807)
  • \n
  • Use parentheses for attribute access on decimal float and int literals (#2799)
  • \n
  • Don't add whitespace for attribute access on hexadecimal, binary, octal, and complex literals (#2799)
  • \n
  • Treat blank lines in stubs the same inside top-level if statements (#2820)
  • \n
  • Fix unstable formatting with semicolons and arithmetic expressions (#2817)
  • \n
  • Fix unstable formatting around magic trailing comma (#2572)
  • \n
\n

Parser

\n
    \n
  • Fix mapping cases that contain as-expressions, like case {"key": 1 | 2 as password} (#2686)
  • \n
  • Fix cases that contain multiple top-level as-expressions, like case 1 as a, 2 as b (#2716)
  • \n
  • Fix call patterns that contain as-expressions with keyword arguments, like case Foo(bar=baz as quux) (#2749)
  • \n
  • Tuple unpacking on return and yield constructs now implies 3.8+ (#2700)
  • \n
  • Unparenthesized tuples on annotated assignments (e.g values: Tuple[int, ...] = 1, 2, 3) now implies 3.8+ (#2708)
  • \n
  • Fix handling of standalone match() or case() when there is a trailing newline or a comment inside of the parentheses. (#2760)
  • \n
  • from __future__ import annotations statement now implies Python 3.7+ (#2690)
  • \n
\n

Performance

\n
    \n
  • Speed-up the new backtracking parser about 4X in general (enabled when --target-version is set to 3.10 and higher). (#2728)
  • \n
  • Black is now compiled with mypyc for an overall 2x speed-up. 64-bit Windows, MacOS, and Linux (not including musl) are supported. (#1009, #2431)
  • \n
\n

Configuration

\n
    \n
  • Do not accept bare carriage return line endings in pyproject.toml (#2408)
  • \n
  • Add configuration option (python-cell-magics) to format cells with custom magics in Jupyter Notebooks (#2744)
  • \n
  • Allow setting custom cache directory on all platforms with environment variable BLACK_CACHE_DIR (#2739).
  • \n
  • Enable Python 3.10+ by default, without any extra need to specify --target-version=py310. (#2758)
  • \n
  • Make passing SRC or --code mandatory and mutually exclusive (#2804)
  • \n
\n

Output

\n
    \n
  • Improve error message for invalid regular expression (#2678)
  • \n
  • Improve error message when parsing fails during AST safety check by embedding the underlying SyntaxError (#2693)
  • \n
  • No longer color diff headers white as it's unreadable in light themed terminals (#2691)
  • \n
  • Text coloring added in the final statistics (#2712)
  • \n
  • Verbose mode also now describes how a project root was discovered and which paths will be formatted. (#2526)
  • \n
\n

Packaging

\n
    \n
  • All upper version bounds on dependencies have been removed (#2718)
  • \n
  • typing-extensions is no longer a required dependency in Python 3.10+ (#2772)
  • \n
  • Set click lower bound to 8.0.0 as Black crashes on 7.1.2 (#2791)
  • \n
\n\n
\n

... (truncated)

\n
\n
\nChangelog\n

Sourced from black's changelog.

\n
\n

22.1.0

\n

At long last, Black is no longer a beta product! This is the first non-beta release\nand the first release covered by our new stability policy.

\n

Highlights

\n
    \n
  • Remove Python 2 support (#2740)
  • \n
  • Introduce the --preview flag (#2752)
  • \n
\n

Style

\n
    \n
  • Deprecate --experimental-string-processing and move the functionality under\n--preview (#2789)
  • \n
  • For stubs, one blank line between class attributes and methods is now kept if there's\nat least one pre-existing blank line (#2736)
  • \n
  • Black now normalizes string prefix order (#2297)
  • \n
  • Remove spaces around power operators if both operands are simple (#2726)
  • \n
  • Work around bug that causes unstable formatting in some cases in the presence of the\nmagic trailing comma (#2807)
  • \n
  • Use parentheses for attribute access on decimal float and int literals (#2799)
  • \n
  • Don't add whitespace for attribute access on hexadecimal, binary, octal, and complex\nliterals (#2799)
  • \n
  • Treat blank lines in stubs the same inside top-level if statements (#2820)
  • \n
  • Fix unstable formatting with semicolons and arithmetic expressions (#2817)
  • \n
  • Fix unstable formatting around magic trailing comma (#2572)
  • \n
\n

Parser

\n
    \n
  • Fix mapping cases that contain as-expressions, like case {"key": 1 | 2 as password}\n(#2686)
  • \n
  • Fix cases that contain multiple top-level as-expressions, like case 1 as a, 2 as b\n(#2716)
  • \n
  • Fix call patterns that contain as-expressions with keyword arguments, like\ncase Foo(bar=baz as quux) (#2749)
  • \n
  • Tuple unpacking on return and yield constructs now implies 3.8+ (#2700)
  • \n
  • Unparenthesized tuples on annotated assignments (e.g\nvalues: Tuple[int, ...] = 1, 2, 3) now implies 3.8+ (#2708)
  • \n
  • Fix handling of standalone match() or case() when there is a trailing newline or a\ncomment inside of the parentheses. (#2760)
  • \n
  • from __future__ import annotations statement now implies Python 3.7+ (#2690)
  • \n
\n

Performance

\n
    \n
  • Speed-up the new backtracking parser about 4X in general (enabled when\n--target-version is set to 3.10 and higher). (#2728)
  • \n
  • Black is now compiled with mypyc for an overall 2x\nspeed-up. 64-bit Windows, MacOS, and Linux (not including musl) are supported. (#1009,\n#2431)
  • \n
\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.12b0&new-version=22.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1616/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1122414274, "node_id": "PR_kwDOBm6k_c4x_evE", "number": 1622, "title": "Test against Python 3.11-dev", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2022-02-02T21:39:38Z", "updated_at": "2022-02-02T21:58:53Z", "closed_at": "2022-02-02T21:58:53Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1622", "body": "Refs #1621", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1622/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1079129258, "node_id": "PR_kwDOBm6k_c4vynly", "number": 1554, "title": "TableView refactor", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 3, "created_at": "2021-12-13T23:16:04Z", "updated_at": "2021-12-20T23:52:11Z", "closed_at": "2021-12-20T23:52:04Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1554", "body": "I'm starting a PR with almost nothing in it so I can use the GitHub code commenting feature to add a bunch of comments to the code I intend to refactor.\r\n\r\nRelated issues:\r\n\r\n- #617 \r\n- #715 \r\n- #870\r\n- #1518", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1554/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1082743068, "node_id": "PR_kwDOBm6k_c4v-izc", "number": 1559, "title": "filters_from_request plugin hook, now used in TableView", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 6, "created_at": "2021-12-16T23:59:33Z", "updated_at": "2021-12-17T23:09:41Z", "closed_at": "2021-12-17T19:02:15Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1559", "body": "New plugin hook, refs #473\r\n\r\nUsed it to extract the logic from TableView that handles _search and\r\n_through and _where - refs #1518", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1559/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1083246400, "node_id": "PR_kwDOBm6k_c4wAMK8", "number": 1562, "title": "Update janus requirement from <0.8,>=0.6.2 to >=0.6.2,<1.1", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 4, "created_at": "2021-12-17T13:11:10Z", "updated_at": "2021-12-17T23:08:29Z", "closed_at": "2021-12-17T23:08:28Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1562", "body": "Updates the requirements on [janus](https://github.com/aio-libs/janus) to permit the latest version.\n
\nRelease notes\n

Sourced from janus's releases.

\n
\n

janus 1.0.0 release

\n
    \n
  • Dropped Python 3.6 support
  • \n
  • Janus is marked as stable, no API changes was made for years
  • \n
\n
\n
\n
\nChangelog\n

Sourced from janus's changelog.

\n
\n

1.0.0 (2021-12-17)

\n
    \n
  • Drop Python 3.6 support
  • \n
\n

0.7.0 (2021-11-24)

\n
    \n
  • Add SyncQueue and AsyncQueue Protocols to provide type hints for sync and async queues #374
  • \n
\n

0.6.2 (2021-10-24)

\n
    \n
  • Fix Python 3.10 compatibility #358
  • \n
\n

0.6.1 (2020-10-26)

\n
    \n
  • \n

    Raise RuntimeError on queue.join() after queue closing. #295

    \n
  • \n
  • \n

    Replace timeout type from Optional[int] to Optional[float] #267

    \n
  • \n
\n

0.6.0 (2020-10-10)

\n
    \n
  • \n

    Drop Python 3.5, the minimal supported version is Python 3.6

    \n
  • \n
  • \n

    Support Python 3.9

    \n
  • \n
  • \n

    Refomat with black

    \n
  • \n
\n

0.5.0 (2020-04-23)

\n
    \n
  • Remove explicit loop arguments and forbid creating queues outside event loops #246
  • \n
\n

0.4.0 (2018-07-28)

\n
    \n
  • \n

    Add py.typed macro #89

    \n
  • \n
  • \n

    Drop python 3.4 support and fix minimal version python3.5.3 #88

    \n
  • \n
  • \n

    Add property with that indicates if queue is closed #86

    \n
  • \n
\n

0.3.2 (2018-07-06)

\n
    \n
  • Fixed python 3.7 support #97
  • \n
\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1562/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 793002853, "node_id": "MDExOlB1bGxSZXF1ZXN0NTYwNzYwMTQ1", "number": 1204, "title": "WIP: Plugin includes", "user": {"value": 9599, "label": "simonw"}, "state": "open", "locked": 0, "assignee": null, "milestone": null, "comments": 3, "created_at": "2021-01-25T03:59:06Z", "updated_at": "2021-12-17T07:10:49Z", "closed_at": null, "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1204", "body": "Refs #1191\r\n\r\nNext steps:\r\n\r\n- [ ] Get comfortable that this pattern is the right way to go\r\n- [ ] Implement it for all of the other pages, not just the table page\r\n- [ ] Add a new set of plugin tests that exercise ALL of these new hook locations\r\n- [ ] Document, then ship", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1204/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 1, "state_reason": null} {"id": 1072135269, "node_id": "PR_kwDOBm6k_c4vb__Y", "number": 1543, "title": "Bump black from 21.11b1 to 21.12b0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-12-06T13:11:16Z", "updated_at": "2021-12-13T23:22:29Z", "closed_at": "2021-12-13T23:22:29Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1543", "body": "Bumps [black](https://github.com/psf/black) from 21.11b1 to 21.12b0.\n
\nRelease notes\n

Sourced from black's releases.

\n
\n

21.12b0

\n

Black

\n
    \n
  • Fix determination of f-string expression spans (#2654)
  • \n
  • Fix bad formatting of error messages about EOF in multi-line statements (#2343)
  • \n
  • Functions and classes in blocks now have more consistent surrounding spacing (#2472)
  • \n
\n

Jupyter Notebook support

\n
    \n
  • Cell magics are now only processed if they are known Python cell magics. Earlier, all cell magics were tokenized, leading to possible indentation errors e.g. with %%writefile. (#2630)
  • \n
  • Fix assignment to environment variables in Jupyter Notebooks (#2642)
  • \n
\n

Python 3.10 support

\n
    \n
  • Point users to using --target-version py310 if we detect 3.10-only syntax (#2668)
  • \n
  • Fix match statements with open sequence subjects, like match a, b: or match a, *b: (#2639) (#2659)
  • \n
  • Fix match/case statements that contain match/case soft keywords multiple times, like match re.match() (#2661)
  • \n
  • Fix case statements with an inline body (#2665)
  • \n
  • Fix styling of starred expressions inside match subject (#2667)
  • \n
  • Fix parser error location on invalid syntax in a match statement (#2649)
  • \n
  • Fix Python 3.10 support on platforms without ProcessPoolExecutor (#2631)
  • \n
  • Improve parsing performance on code that uses match under --target-version py310 up to ~50% (#2670)
  • \n
\n

Packaging

\n\n
\n

Thank you!

\n\n

And also congrats to first contributors!

\n\n
\n
\n
\nChangelog\n

Sourced from black's changelog.

\n
\n

21.12b0

\n

Black

\n
    \n
  • Fix determination of f-string expression spans (#2654)
  • \n
  • Fix bad formatting of error messages about EOF in multi-line statements (#2343)
  • \n
  • Functions and classes in blocks now have more consistent surrounding spacing (#2472)
  • \n
\n

Jupyter Notebook support

\n
    \n
  • Cell magics are now only processed if they are known Python cell magics. Earlier, all\ncell magics were tokenized, leading to possible indentation errors e.g. with\n%%writefile. (#2630)
  • \n
  • Fix assignment to environment variables in Jupyter Notebooks (#2642)
  • \n
\n

Python 3.10 support

\n
    \n
  • Point users to using --target-version py310 if we detect 3.10-only syntax (#2668)
  • \n
  • Fix match statements with open sequence subjects, like match a, b: or\nmatch a, *b: (#2639) (#2659)
  • \n
  • Fix match/case statements that contain match/case soft keywords multiple\ntimes, like match re.match() (#2661)
  • \n
  • Fix case statements with an inline body (#2665)
  • \n
  • Fix styling of starred expressions inside match subject (#2667)
  • \n
  • Fix parser error location on invalid syntax in a match statement (#2649)
  • \n
  • Fix Python 3.10 support on platforms without ProcessPoolExecutor (#2631)
  • \n
  • Improve parsing performance on code that uses match under --target-version py310\nup to ~50% (#2670)
  • \n
\n

Packaging

\n\n
\n
\n
\nCommits\n\n
\n
\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.11b1&new-version=21.12b0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1543/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1076834768, "node_id": "PR_kwDOBm6k_c4vrZxV", "number": 1548, "title": "Update pytest-xdist requirement from <2.5,>=2.2.1 to >=2.2.1,<2.6", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-12-10T13:12:06Z", "updated_at": "2021-12-13T23:22:22Z", "closed_at": "2021-12-13T23:22:21Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1548", "body": "Updates the requirements on [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) to permit the latest version.\n
\nChangelog\n

Sourced from pytest-xdist's changelog.

\n
\n

pytest-xdist 2.5.0 (2021-12-10)

\n

Features

\n
    \n
  • \n

    [#722](https://github.com/pytest-dev/pytest-xdist/issues/722) <https://github.com/pytest-dev/pytest-xdist/issues/722>_: Full compatibility with pytest 7 - no deprecation warnings or use of legacy features.

    \n
  • \n
  • \n

    [#733](https://github.com/pytest-dev/pytest-xdist/issues/733) <https://github.com/pytest-dev/pytest-xdist/issues/733>_: New --dist=loadgroup option, which ensures all tests marked with @pytest.mark.xdist_group run in the same session/worker. Other tests run distributed as in --dist=load.

    \n
  • \n
\n

Trivial Changes

\n
    \n
  • \n

    [#708](https://github.com/pytest-dev/pytest-xdist/issues/708) <https://github.com/pytest-dev/pytest-xdist/issues/708>_: Use @pytest.hookspec decorator to declare hook options in newhooks.py to avoid warnings in pytest 7.0.

    \n
  • \n
  • \n

    [#719](https://github.com/pytest-dev/pytest-xdist/issues/719) <https://github.com/pytest-dev/pytest-xdist/issues/719>_: Use up-to-date setup.cfg/pyproject.toml packaging setup.

    \n
  • \n
  • \n

    [#720](https://github.com/pytest-dev/pytest-xdist/issues/720) <https://github.com/pytest-dev/pytest-xdist/issues/720>_: Require pytest>=6.2.0.

    \n
  • \n
  • \n

    [#721](https://github.com/pytest-dev/pytest-xdist/issues/721) <https://github.com/pytest-dev/pytest-xdist/issues/721>_: Started using type annotations and mypy checking internally. The types are incomplete and not published.

    \n
  • \n
\n

pytest-xdist 2.4.0 (2021-09-20)

\n

Features

\n
    \n
  • \n

    [#696](https://github.com/pytest-dev/pytest-xdist/issues/696) <https://github.com/pytest-dev/pytest-xdist/issues/696>_: On Linux, the process title now changes to indicate the current worker state (running/idle).

    \n

    Depends on the setproctitle <https://pypi.org/project/setproctitle/>__ package, which can be installed with pip install pytest-xdist[setproctitle].

    \n
  • \n
  • \n

    [#704](https://github.com/pytest-dev/pytest-xdist/issues/704) <https://github.com/pytest-dev/pytest-xdist/issues/704>_: Add support for Python 3.10.

    \n
  • \n
\n

pytest-xdist 2.3.0 (2021-06-16)

\n

Deprecations and Removals

\n
    \n
  • [#654](https://github.com/pytest-dev/pytest-xdist/issues/654) <https://github.com/pytest-dev/pytest-xdist/issues/654>_: Python 3.5 is no longer supported.
  • \n
\n

Features

\n
    \n
  • [#646](https://github.com/pytest-dev/pytest-xdist/issues/646) <https://github.com/pytest-dev/pytest-xdist/issues/646>_: Add --numprocesses=logical flag, which automatically uses the number of logical CPUs available, instead of physical CPUs with auto.
  • \n
\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1548/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1062414013, "node_id": "PR_kwDOBm6k_c4u9wQq", "number": 1529, "title": "Update janus requirement from <0.7,>=0.6.2 to >=0.6.2,<0.8", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-11-24T13:12:42Z", "updated_at": "2021-11-30T02:37:13Z", "closed_at": "2021-11-30T02:37:13Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1529", "body": "Updates the requirements on [janus](https://github.com/aio-libs/janus) to permit the latest version.\n
\nChangelog\n

Sourced from janus's changelog.

\n
\n

0.7.0 (2021-11-24)

\n
    \n
  • Add SyncQueue and AsyncQueue Protocols to provide type hints for sync and async queues #374
  • \n
\n

0.6.2 (2021-10-24)

\n
    \n
  • Fix Python 3.10 compatibility #358
  • \n
\n

0.6.1 (2020-10-26)

\n
    \n
  • \n

    Raise RuntimeError on queue.join() after queue closing. #295

    \n
  • \n
  • \n

    Replace timeout type from Optional[int] to Optional[float] #267

    \n
  • \n
\n

0.6.0 (2020-10-10)

\n
    \n
  • \n

    Drop Python 3.5, the minimal supported version is Python 3.6

    \n
  • \n
  • \n

    Support Python 3.9

    \n
  • \n
  • \n

    Refomat with black

    \n
  • \n
\n

0.5.0 (2020-04-23)

\n
    \n
  • Remove explicit loop arguments and forbid creating queues outside event loops #246
  • \n
\n

0.4.0 (2018-07-28)

\n
    \n
  • \n

    Add py.typed macro #89

    \n
  • \n
  • \n

    Drop python 3.4 support and fix minimal version python3.5.3 #88

    \n
  • \n
  • \n

    Add property with that indicates if queue is closed #86

    \n
  • \n
\n

0.3.2 (2018-07-06)

\n
    \n
  • Fixed python 3.7 support #97
  • \n
\n

0.3.1 (2018-01-30)

\n
    \n
  • Fixed bug with join() in case tasks are added by sync_q.put() #75
  • \n
\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1529/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1057340779, "node_id": "PR_kwDOBm6k_c4utsKs", "number": 1516, "title": "Bump black from 21.9b0 to 21.11b1", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-11-18T13:11:12Z", "updated_at": "2021-11-30T02:35:29Z", "closed_at": "2021-11-30T02:35:29Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1516", "body": "Bumps [black](https://github.com/psf/black) from 21.9b0 to 21.11b1.\n
\nRelease notes\n

Sourced from black's releases.

\n
\n

21.11b1

\n

Black

\n
    \n
  • Bumped regex version minimum to 2021.4.4 to fix Pattern class usage (#2621)
  • \n
\n

21.11b0

\n

Black

\n
    \n
  • Warn about Python 2 deprecation in more cases by improving Python 2 only syntax\ndetection (#2592)
  • \n
  • Add experimental PyPy support (#2559)
  • \n
  • Add partial support for the match statement. As it's experimental, it's only enabled\nwhen --target-version py310 is explicitly specified (#2586)
  • \n
  • Add support for parenthesized with (#2586)
  • \n
  • Declare support for Python 3.10 for running Black (#2562)
  • \n
\n

Integrations

\n
    \n
  • Fixed vim plugin with Python 3.10 by removing deprecated distutils import (#2610)
  • \n
  • The vim plugin now parses skip_magic_trailing_comma from pyproject.toml (#2613)
  • \n
\n

21.10b0

\n

Black

\n
    \n
  • Document stability policy, that will apply for non-beta releases (#2529)
  • \n
  • Add new --workers parameter (#2514)
  • \n
  • Fixed feature detection for positional-only arguments in lambdas (#2532)
  • \n
  • Bumped typed-ast version minimum to 1.4.3 for 3.10 compatiblity (#2519)
  • \n
  • Fixed a Python 3.10 compatibility issue where the loop argument was still being passed\neven though it has been removed (#2580)
  • \n
  • Deprecate Python 2 formatting support (#2523)
  • \n
\n

Blackd

\n
    \n
  • Remove dependency on aiohttp-cors (#2500)
  • \n
  • Bump required aiohttp version to 3.7.4 (#2509)
  • \n
\n

Black-Primer

\n
    \n
  • Add primer support for --projects (#2555)
  • \n
  • Print primer summary after individual failures (#2570)
  • \n
\n

Integrations

\n
    \n
  • Allow to pass target_version in the vim plugin (#1319)
  • \n
  • Install build tools in docker file and use multi-stage build to keep the image size\ndown (#2582)
  • \n
\n
\n
\n
\nChangelog\n

Sourced from black's changelog.

\n
\n

21.11b1

\n

Black

\n
    \n
  • Bumped regex version minimum to 2021.4.4 to fix Pattern class usage (#2621)
  • \n
\n

21.11b0

\n

Black

\n
    \n
  • Warn about Python 2 deprecation in more cases by improving Python 2 only syntax\ndetection (#2592)
  • \n
  • Add experimental PyPy support (#2559)
  • \n
  • Add partial support for the match statement. As it's experimental, it's only enabled\nwhen --target-version py310 is explicitly specified (#2586)
  • \n
  • Add support for parenthesized with (#2586)
  • \n
  • Declare support for Python 3.10 for running Black (#2562)
  • \n
\n

Integrations

\n
    \n
  • Fixed vim plugin with Python 3.10 by removing deprecated distutils import (#2610)
  • \n
  • The vim plugin now parses skip_magic_trailing_comma from pyproject.toml (#2613)
  • \n
\n

21.10b0

\n

Black

\n
    \n
  • Document stability policy, that will apply for non-beta releases (#2529)
  • \n
  • Add new --workers parameter (#2514)
  • \n
  • Fixed feature detection for positional-only arguments in lambdas (#2532)
  • \n
  • Bumped typed-ast version minimum to 1.4.3 for 3.10 compatibility (#2519)
  • \n
  • Fixed a Python 3.10 compatibility issue where the loop argument was still being passed\neven though it has been removed (#2580)
  • \n
  • Deprecate Python 2 formatting support (#2523)
  • \n
\n

Blackd

\n
    \n
  • Remove dependency on aiohttp-cors (#2500)
  • \n
  • Bump required aiohttp version to 3.7.4 (#2509)
  • \n
\n

Black-Primer

\n
    \n
  • Add primer support for --projects (#2555)
  • \n
  • Print primer summary after individual failures (#2570)
  • \n
\n

Integrations

\n
    \n
  • Allow to pass target_version in the vim plugin (#1319)
  • \n
  • Install build tools in docker file and use multi-stage build to keep the image size\ndown (#2582)
  • \n
\n
\n
\n
\nCommits\n\n
\n
\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.9b0&new-version=21.11b1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1516/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1053655062, "node_id": "PR_kwDOBm6k_c4uiE0n", "number": 1508, "title": "Update docutils requirement from <0.18 to <0.19", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-11-15T13:15:47Z", "updated_at": "2021-11-30T02:35:19Z", "closed_at": "2021-11-30T02:35:19Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1508", "body": "Updates the requirements on [docutils](http://docutils.sourceforge.net/) to permit the latest version.\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1508/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1066023866, "node_id": "PR_kwDOBm6k_c4vIJqi", "number": 1537, "title": "Update aiofiles requirement from <0.8,>=0.4 to >=0.4,<0.9", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-11-29T13:13:52Z", "updated_at": "2021-11-30T02:29:55Z", "closed_at": "2021-11-30T02:29:54Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1537", "body": "Updates the requirements on [aiofiles](https://github.com/Tinche/aiofiles) to permit the latest version.\n
\nCommits\n\n
\n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1537/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1033678984, "node_id": "PR_kwDOBm6k_c4tjgJ8", "number": 1495, "title": "Allow routes to have extra options", "user": {"value": 536941, "label": "fgregg"}, "state": "open", "locked": 0, "assignee": null, "milestone": null, "comments": 5, "created_at": "2021-10-22T15:00:45Z", "updated_at": "2021-11-19T15:36:27Z", "closed_at": null, "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1495", "body": "Right now, datasette routes can only be a 2-tuple of `(regex, view_fn)`. \r\n\r\nIf 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.\r\n\r\nFor 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.\r\n\r\n```python\r\nfrom datasette import hookimpl\r\nfrom datasette.views.table import TableView\r\n\r\n@hookimpl\r\ndef register_routes(datasette):\r\n return [\r\n (r\"^/$\", TableView.as_view(datasette), {'db_name': 'DB_NAME',\r\n 'table': 'TABLE_NAME'})\r\n ]\r\n```\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1495/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1056117435, "node_id": "PR_kwDOBm6k_c4up0R0", "number": 1514, "title": "Bump black from 21.9b0 to 21.11b0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 2, "created_at": "2021-11-17T13:13:55Z", "updated_at": "2021-11-18T13:11:17Z", "closed_at": "2021-11-18T13:11:15Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1514", "body": "Bumps [black](https://github.com/psf/black) from 21.9b0 to 21.11b0.\n
\nRelease notes\n

Sourced from black's releases.

\n
\n

21.11b0

\n

Black

\n
    \n
  • Warn about Python 2 deprecation in more cases by improving Python 2 only syntax\ndetection (#2592)
  • \n
  • Add experimental PyPy support (#2559)
  • \n
  • Add partial support for the match statement. As it's experimental, it's only enabled\nwhen --target-version py310 is explicitly specified (#2586)
  • \n
  • Add support for parenthesized with (#2586)
  • \n
  • Declare support for Python 3.10 for running Black (#2562)
  • \n
\n

Integrations

\n
    \n
  • Fixed vim plugin with Python 3.10 by removing deprecated distutils import (#2610)
  • \n
  • The vim plugin now parses skip_magic_trailing_comma from pyproject.toml (#2613)
  • \n
\n

21.10b0

\n

Black

\n
    \n
  • Document stability policy, that will apply for non-beta releases (#2529)
  • \n
  • Add new --workers parameter (#2514)
  • \n
  • Fixed feature detection for positional-only arguments in lambdas (#2532)
  • \n
  • Bumped typed-ast version minimum to 1.4.3 for 3.10 compatiblity (#2519)
  • \n
  • Fixed a Python 3.10 compatibility issue where the loop argument was still being passed\neven though it has been removed (#2580)
  • \n
  • Deprecate Python 2 formatting support (#2523)
  • \n
\n

Blackd

\n
    \n
  • Remove dependency on aiohttp-cors (#2500)
  • \n
  • Bump required aiohttp version to 3.7.4 (#2509)
  • \n
\n

Black-Primer

\n
    \n
  • Add primer support for --projects (#2555)
  • \n
  • Print primer summary after individual failures (#2570)
  • \n
\n

Integrations

\n
    \n
  • Allow to pass target_version in the vim plugin (#1319)
  • \n
  • Install build tools in docker file and use multi-stage build to keep the image size\ndown (#2582)
  • \n
\n
\n
\n
\nChangelog\n

Sourced from black's changelog.

\n
\n

21.11b0

\n

Black

\n
    \n
  • Warn about Python 2 deprecation in more cases by improving Python 2 only syntax\ndetection (#2592)
  • \n
  • Add experimental PyPy support (#2559)
  • \n
  • Add partial support for the match statement. As it's experimental, it's only enabled\nwhen --target-version py310 is explicitly specified (#2586)
  • \n
  • Add support for parenthesized with (#2586)
  • \n
  • Declare support for Python 3.10 for running Black (#2562)
  • \n
\n

Integrations

\n
    \n
  • Fixed vim plugin with Python 3.10 by removing deprecated distutils import (#2610)
  • \n
  • The vim plugin now parses skip_magic_trailing_comma from pyproject.toml (#2613)
  • \n
\n

21.10b0

\n

Black

\n
    \n
  • Document stability policy, that will apply for non-beta releases (#2529)
  • \n
  • Add new --workers parameter (#2514)
  • \n
  • Fixed feature detection for positional-only arguments in lambdas (#2532)
  • \n
  • Bumped typed-ast version minimum to 1.4.3 for 3.10 compatibility (#2519)
  • \n
  • Fixed a Python 3.10 compatibility issue where the loop argument was still being passed\neven though it has been removed (#2580)
  • \n
  • Deprecate Python 2 formatting support (#2523)
  • \n
\n

Blackd

\n
    \n
  • Remove dependency on aiohttp-cors (#2500)
  • \n
  • Bump required aiohttp version to 3.7.4 (#2509)
  • \n
\n

Black-Primer

\n
    \n
  • Add primer support for --projects (#2555)
  • \n
  • Print primer summary after individual failures (#2570)
  • \n
\n

Integrations

\n
    \n
  • Allow to pass target_version in the vim plugin (#1319)
  • \n
  • Install build tools in docker file and use multi-stage build to keep the image size\ndown (#2582)
  • \n
\n
\n
\n
\nCommits\n\n
\n
\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.9b0&new-version=21.11b0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1514/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1041158024, "node_id": "PR_kwDOBm6k_c4t7RKr", "number": 1500, "title": "Bump black from 21.9b0 to 21.10b0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 2, "created_at": "2021-11-01T13:11:23Z", "updated_at": "2021-11-17T13:14:00Z", "closed_at": "2021-11-17T13:13:58Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1500", "body": "Bumps [black](https://github.com/psf/black) from 21.9b0 to 21.10b0.\n
\nRelease notes\n

Sourced from black's releases.

\n
\n

21.10b0

\n

Black

\n
    \n
  • Document stability policy, that will apply for non-beta releases (#2529)
  • \n
  • Add new --workers parameter (#2514)
  • \n
  • Fixed feature detection for positional-only arguments in lambdas (#2532)
  • \n
  • Bumped typed-ast version minimum to 1.4.3 for 3.10 compatiblity (#2519)
  • \n
  • Fixed a Python 3.10 compatibility issue where the loop argument was still being passed\neven though it has been removed (#2580)
  • \n
  • Deprecate Python 2 formatting support (#2523)
  • \n
\n

Blackd

\n
    \n
  • Remove dependency on aiohttp-cors (#2500)
  • \n
  • Bump required aiohttp version to 3.7.4 (#2509)
  • \n
\n

Black-Primer

\n
    \n
  • Add primer support for --projects (#2555)
  • \n
  • Print primer summary after individual failures (#2570)
  • \n
\n

Integrations

\n
    \n
  • Allow to pass target_version in the vim plugin (#1319)
  • \n
  • Install build tools in docker file and use multi-stage build to keep the image size\ndown (#2582)
  • \n
\n
\n
\n
\nChangelog\n

Sourced from black's changelog.

\n
\n

21.10b0

\n

Black

\n
    \n
  • Document stability policy, that will apply for non-beta releases (#2529)
  • \n
  • Add new --workers parameter (#2514)
  • \n
  • Fixed feature detection for positional-only arguments in lambdas (#2532)
  • \n
  • Bumped typed-ast version minimum to 1.4.3 for 3.10 compatiblity (#2519)
  • \n
  • Fixed a Python 3.10 compatibility issue where the loop argument was still being passed\neven though it has been removed (#2580)
  • \n
  • Deprecate Python 2 formatting support (#2523)
  • \n
\n

Blackd

\n
    \n
  • Remove dependency on aiohttp-cors (#2500)
  • \n
  • Bump required aiohttp version to 3.7.4 (#2509)
  • \n
\n

Black-Primer

\n
    \n
  • Add primer support for --projects (#2555)
  • \n
  • Print primer summary after individual failures (#2570)
  • \n
\n

Integrations

\n
    \n
  • Allow to pass target_version in the vim plugin (#1319)
  • \n
  • Install build tools in docker file and use multi-stage build to keep the image size\ndown (#2582)
  • \n
\n
\n
\n
\nCommits\n\n
\n
\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.9b0&new-version=21.10b0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1500/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1055402144, "node_id": "PR_kwDOBm6k_c4unfnq", "number": 1512, "title": "New pattern for async view classes", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 7, "created_at": "2021-11-16T21:55:44Z", "updated_at": "2021-11-17T01:39:54Z", "closed_at": "2021-11-17T01:39:44Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1512", "body": "Refs #878 - starting out with the new `AsyncBase` class implementing a pytest-inspired `asyncio` parallel execution mechanism.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1512/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 1, "state_reason": null} {"id": 1029100823, "node_id": "PR_kwDOBm6k_c4tU5cz", "number": 1494, "title": "Update pytest-asyncio requirement from <0.16,>=0.10 to >=0.10,<0.17", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-10-18T13:14:17Z", "updated_at": "2021-10-24T22:22:40Z", "closed_at": "2021-10-24T22:22:39Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1494", "body": "Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.\n
\nCommits\n\n
\n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1494/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1020436713, "node_id": "PR_kwDOBm6k_c4s6bJm", "number": 1481, "title": "Fix compatibility with Python 3.10", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 13, "created_at": "2021-10-07T20:34:23Z", "updated_at": "2021-10-24T22:19:55Z", "closed_at": "2021-10-24T22:19:54Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1481", "body": null, "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1481/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 991575770, "node_id": "MDExOlB1bGxSZXF1ZXN0NzMwMDIwODY3", "number": 1467, "title": "Add Authorization header when CORS flag is set", "user": {"value": 3058200, "label": "jameslittle230"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 3, "created_at": "2021-09-08T22:14:41Z", "updated_at": "2021-10-17T02:29:07Z", "closed_at": "2021-10-14T18:54:18Z", "author_association": "NONE", "pull_request": "simonw/datasette/pulls/1467", "body": "This PR adds the [`Access-Control-Allow-Headers`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers) flag when CORS mode is enabled.\r\n\r\nThis would fix https://github.com/simonw/datasette-auth-tokens/issues/4. When making cross-origin requests, the server must respond with all allowable HTTP headers. A Datasette instance using auth tokens must accept the `Authorization` HTTP header in order for cross-origin authenticated requests to take place.\r\n\r\nPlease let me know if there's a better way of doing this! I couldn't figure out a way to change the app's response from the plugin itself, so I'm starting here. If you'd rather this logic live in the plugin, I'd love any guidance you're able to give.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1467/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 988555009, "node_id": "MDExOlB1bGxSZXF1ZXN0NzI3NDM2NDA0", "number": 1458, "title": "Rework the `--static` documentation a bit", "user": {"value": 51016, "label": "ctb"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-09-05T17:08:48Z", "updated_at": "2021-10-15T13:24:29Z", "closed_at": "2021-10-14T18:39:55Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1458", "body": "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.\r\n\r\nThis is a PR that differentiates the docs to split out `/static/` in URL from `--static` option and `./static/` path.\r\n\r\nNot wedded to the details in any way, happy to change to suit.\r\n\r\nFixes #1457.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1458/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1026379132, "node_id": "PR_kwDOBm6k_c4tM0JV", "number": 1489, "title": "Update pyyaml requirement from ~=5.3 to >=5.3,<7.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 3, "created_at": "2021-10-14T13:09:33Z", "updated_at": "2021-10-14T18:10:43Z", "closed_at": "2021-10-14T18:10:42Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1489", "body": "Updates the requirements on [pyyaml](https://github.com/yaml/pyyaml) to permit the latest version.\n
\nChangelog\n

Sourced from pyyaml's changelog.

\n
\n

6.0 (2021-10-13)

\n\n

5.4.1 (2021-01-20)

\n
    \n
  • yaml/pyyaml#480 -- Fix stub compat with older pyyaml versions that may unwittingly load it
  • \n
\n

5.4 (2021-01-19)

\n\n

5.3.1 (2020-03-18)

\n
    \n
  • yaml/pyyaml#386 -- Prevents arbitrary code execution during python/object/new constructor
  • \n
\n

5.3 (2020-01-06)

\n\n

5.2 (2019-12-02)

\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1489/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1026664511, "node_id": "PR_kwDOBm6k_c4tNtoe", "number": 1490, "title": "Upgrade to httpx 0.20", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 0, "created_at": "2021-10-14T17:51:05Z", "updated_at": "2021-10-14T18:03:45Z", "closed_at": "2021-10-14T18:03:44Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/1490", "body": "Refs #1488 ", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1490/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 991121619, "node_id": "MDExOlB1bGxSZXF1ZXN0NzI5NjMyNjQz", "number": 1463, "title": "Update beautifulsoup4 requirement from <4.10.0,>=4.8.1 to >=4.8.1,<4.11.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-09-08T13:09:38Z", "updated_at": "2021-10-13T22:35:37Z", "closed_at": "2021-10-13T22:35:36Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1463", "body": "Updates the requirements on [beautifulsoup4](http://www.crummy.com/software/BeautifulSoup/bs4/) to permit the latest version.\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1463/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 996002181, "node_id": "PR_kwDOBm6k_c4rutdp", "number": 1471, "title": "Bump black from 21.7b0 to 21.9b0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-09-14T13:10:35Z", "updated_at": "2021-10-13T21:47:42Z", "closed_at": "2021-10-13T21:47:42Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1471", "body": "Bumps [black](https://github.com/psf/black) from 21.7b0 to 21.9b0.\n
\nRelease notes\n

Sourced from black's releases.

\n
\n

21.9b0

\n

Packaging

\n
    \n
  • Fix missing modules in self-contained binaries (#2466)
  • \n
  • Fix missing toml extra used during installation (#2475)
  • \n
\n

21.8b0

\n

Black

\n
    \n
  • Add support for formatting Jupyter Notebook files (#2357)
  • \n
  • Move from appdirs dependency to platformdirs (#2375)
  • \n
  • Present a more user-friendly error if .gitignore is invalid (#2414)
  • \n
  • The failsafe for accidentally added backslashes in f-string expressions has been hardened to handle more edge cases during quote normalization (#2437)
  • \n
  • Avoid changing a function return type annotation's type to a tuple by adding a trailing comma (#2384)
  • \n
  • Parsing support has been added for unparenthesized walruses in set literals, set comprehensions, and indices (#2447).
  • \n
  • Pin setuptools-scm build-time dependency version (#2457)
  • \n
  • Exclude typing-extensions version 3.10.0.1 due to it being broken on Python 3.10 (#2460)
  • \n
\n

Blackd

\n
    \n
  • Replace sys.exit(-1) with raise ImportError as it plays more nicely with tools that scan installed packages (#2440)
  • \n
\n

Integrations

\n
    \n
  • The provided pre-commit hooks no longer specify language_version to avoid overriding default_language_version (#2430)
  • \n
\n
\n
\n
\nChangelog\n

Sourced from black's changelog.

\n
\n

21.9b0

\n

Packaging

\n
    \n
  • Fix missing modules in self-contained binaries (#2466)
  • \n
  • Fix missing toml extra used during installation (#2475)
  • \n
\n

21.8b0

\n

Black

\n
    \n
  • Add support for formatting Jupyter Notebook files (#2357)
  • \n
  • Move from appdirs dependency to platformdirs (#2375)
  • \n
  • Present a more user-friendly error if .gitignore is invalid (#2414)
  • \n
  • The failsafe for accidentally added backslashes in f-string expressions has been\nhardened to handle more edge cases during quote normalization (#2437)
  • \n
  • Avoid changing a function return type annotation's type to a tuple by adding a\ntrailing comma (#2384)
  • \n
  • Parsing support has been added for unparenthesized walruses in set literals, set\ncomprehensions, and indices (#2447).
  • \n
  • Pin setuptools-scm build-time dependency version (#2457)
  • \n
  • Exclude typing-extensions version 3.10.0.1 due to it being broken on Python 3.10\n(#2460)
  • \n
\n

Blackd

\n
    \n
  • Replace sys.exit(-1) with raise ImportError as it plays more nicely with tools that\nscan installed packages (#2440)
  • \n
\n

Integrations

\n
    \n
  • The provided pre-commit hooks no longer specify language_version to avoid overriding\ndefault_language_version (#2430)
  • \n
\n
\n
\n
\nCommits\n\n
\n
\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.7b0&new-version=21.9b0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1471/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 980228553, "node_id": "MDExOlB1bGxSZXF1ZXN0NzIwNTA2MTM1", "number": 1448, "title": "Update pluggy requirement from ~=0.13.0 to >=0.13,<1.1", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-08-26T13:09:52Z", "updated_at": "2021-10-13T21:11:01Z", "closed_at": "2021-10-13T21:11:00Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1448", "body": "Updates the requirements on [pluggy](https://github.com/pytest-dev/pluggy) to permit the latest version.\n
\nChangelog\n

Sourced from pluggy's changelog.

\n
\n

pluggy 1.0.0 (2021-08-25)

\n

Deprecations and Removals

\n
    \n
  • \n

    [#116](https://github.com/pytest-dev/pluggy/issues/116) <https://github.com/pytest-dev/pluggy/issues/116>_: Remove deprecated implprefix support.\nDecorate hook implementations using an instance of HookimplMarker instead.\nThe deprecation was announced in release 0.7.0.

    \n
  • \n
  • \n

    [#120](https://github.com/pytest-dev/pluggy/issues/120) <https://github.com/pytest-dev/pluggy/issues/120>_: Remove the deprecated proc argument to call_historic.\nUse result_callback instead, which has the same behavior.\nThe deprecation was announced in release 0.7.0.

    \n
  • \n
  • \n

    [#265](https://github.com/pytest-dev/pluggy/issues/265) <https://github.com/pytest-dev/pluggy/issues/265>_: Remove the _Result.result property. Use _Result.get_result() instead.\nNote that unlike result, get_result() raises the exception if the hook raised.\nThe deprecation was announced in release 0.6.0.

    \n
  • \n
  • \n

    [#267](https://github.com/pytest-dev/pluggy/issues/267) <https://github.com/pytest-dev/pluggy/issues/267>_: Remove official support for Python 3.4.

    \n
  • \n
  • \n

    [#272](https://github.com/pytest-dev/pluggy/issues/272) <https://github.com/pytest-dev/pluggy/issues/272>_: Dropped support for Python 2.\nContinue to use pluggy 0.13.x for Python 2 support.

    \n
  • \n
  • \n

    [#308](https://github.com/pytest-dev/pluggy/issues/308) <https://github.com/pytest-dev/pluggy/issues/308>_: Remove official support for Python 3.5.

    \n
  • \n
  • \n

    [#313](https://github.com/pytest-dev/pluggy/issues/313) <https://github.com/pytest-dev/pluggy/issues/313>_: The internal pluggy.callers, pluggy.manager and pluggy.hooks are now explicitly marked private by a _ prefix (e.g. pluggy._callers).\nOnly API exported by the top-level pluggy module is considered public.

    \n
  • \n
  • \n

    [#59](https://github.com/pytest-dev/pluggy/issues/59) <https://github.com/pytest-dev/pluggy/issues/59>_: Remove legacy __multicall__ recursive hook calling system.\nThe deprecation was announced in release 0.5.0.

    \n
  • \n
\n

Features

\n
    \n
  • \n

    [#282](https://github.com/pytest-dev/pluggy/issues/282) <https://github.com/pytest-dev/pluggy/issues/282>_: When registering a hookimpl which is declared as hookwrapper=True but whose\nfunction is not a generator function, a PluggyValidationError exception is\nnow raised.

    \n

    Previously this problem would cause an error only later, when calling the hook.

    \n

    In the unlikely case that you have a hookwrapper that returns a generator

    \n
  • \n
\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1448/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1000779422, "node_id": "PR_kwDOBm6k_c4r9CTw", "number": 1474, "title": "Update full_text_search.rst", "user": {"value": 72577720, "label": "MichaelTiemannOSC"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 0, "created_at": "2021-09-20T09:59:45Z", "updated_at": "2021-10-13T21:10:23Z", "closed_at": "2021-10-13T21:10:23Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1474", "body": "Change \"above\" to \"below\" to correct correspondence of reference to example.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1474/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1002459220, "node_id": "PR_kwDOBm6k_c4sCfBT", "number": 1476, "title": "Update pytest-xdist requirement from <2.4,>=2.2.1 to >=2.2.1,<2.5", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-09-21T13:13:01Z", "updated_at": "2021-10-13T21:10:03Z", "closed_at": "2021-10-13T21:10:03Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1476", "body": "Updates the requirements on [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) to permit the latest version.\n
\nChangelog\n

Sourced from pytest-xdist's changelog.

\n
\n

pytest-xdist 2.4.0 (2021-09-20)

\n

Features

\n
    \n
  • \n

    [#696](https://github.com/pytest-dev/pytest-xdist/issues/696) <https://github.com/pytest-dev/pytest-xdist/issues/696>_: On Linux, the process title now changes to indicate the current worker state (running/idle).

    \n

    Depends on the setproctitle <https://pypi.org/project/setproctitle/>__ package, which can be installed with pip install pytest-xdist[setproctitle].

    \n
  • \n
  • \n

    [#704](https://github.com/pytest-dev/pytest-xdist/issues/704) <https://github.com/pytest-dev/pytest-xdist/issues/704>_: Add support for Python 3.10.

    \n
  • \n
\n

pytest-xdist 2.3.0 (2021-06-16)

\n

Deprecations and Removals

\n
    \n
  • [#654](https://github.com/pytest-dev/pytest-xdist/issues/654) <https://github.com/pytest-dev/pytest-xdist/issues/654>_: Python 3.5 is no longer supported.
  • \n
\n

Features

\n
    \n
  • \n

    [#646](https://github.com/pytest-dev/pytest-xdist/issues/646) <https://github.com/pytest-dev/pytest-xdist/issues/646>_: Add --numprocesses=logical flag, which automatically uses the number of logical CPUs available, instead of physical CPUs with auto.

    \n

    This is very useful for test suites which are not CPU-bound.

    \n
  • \n
  • \n

    [#650](https://github.com/pytest-dev/pytest-xdist/issues/650) <https://github.com/pytest-dev/pytest-xdist/issues/650>_: Added new pytest_handlecrashitem hook to allow handling and rescheduling crashed items.

    \n
  • \n
\n

Bug Fixes

\n
    \n
  • \n

    [#421](https://github.com/pytest-dev/pytest-xdist/issues/421) <https://github.com/pytest-dev/pytest-xdist/issues/421>_: Copy the parent process sys.path into local workers, to work around execnet's python -c adding the current directory to sys.path.

    \n
  • \n
  • \n

    [#638](https://github.com/pytest-dev/pytest-xdist/issues/638) <https://github.com/pytest-dev/pytest-xdist/issues/638>_: Fix issue caused by changing the branch name of the pytest repository.

    \n
  • \n
\n

Trivial Changes

\n
    \n
  • \n

    [#592](https://github.com/pytest-dev/pytest-xdist/issues/592) <https://github.com/pytest-dev/pytest-xdist/issues/592>_: Replace master with controller where ever possible.

    \n
  • \n
  • \n

    [#643](https://github.com/pytest-dev/pytest-xdist/issues/643) <https://github.com/pytest-dev/pytest-xdist/issues/643>_: Use 'main' to refer to pytest default branch in tox env names.

    \n
  • \n
\n

pytest-xdist 2.2.1 (2021-02-09)

\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1476/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1022688960, "node_id": "PR_kwDOBm6k_c4tBIEE", "number": 1485, "title": "Update pytest-timeout requirement from <1.5,>=1.4.2 to >=1.4.2,<2.1", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-10-11T13:10:51Z", "updated_at": "2021-10-13T21:09:23Z", "closed_at": "2021-10-13T21:09:23Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1485", "body": "Updates the requirements on [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) to permit the latest version.\n
\nCommits\n\n
\n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1485/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1023245060, "node_id": "PR_kwDOBm6k_c4tC4Lx", "number": 1487, "title": "Added instructions for installing plugins via pipx, #1486", "user": {"value": 41546558, "label": "RhetTbull"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-10-12T00:48:30Z", "updated_at": "2021-10-13T21:09:11Z", "closed_at": "2021-10-13T21:09:10Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1487", "body": "Adds missing instructions for installing plugins via pipx", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1487/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1022294524, "node_id": "PR_kwDOBm6k_c4s_4Cw", "number": 1484, "title": "GitHub Actions: Add Python 3.10 to the tests", "user": {"value": 3709715, "label": "cclauss"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 0, "created_at": "2021-10-11T06:03:03Z", "updated_at": "2021-10-11T06:03:31Z", "closed_at": "2021-10-11T06:03:28Z", "author_association": "FIRST_TIME_CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1484", "body": null, "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1484/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 1001104942, "node_id": "PR_kwDOBm6k_c4r-EVH", "number": 1475, "title": "feat: allow joins using _through in both directions", "user": {"value": 5268174, "label": "bram2000"}, "state": "open", "locked": 0, "assignee": null, "milestone": null, "comments": 0, "created_at": "2021-09-20T15:28:20Z", "updated_at": "2021-09-20T15:28:20Z", "closed_at": null, "author_association": "FIRST_TIME_CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1475", "body": "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.\r\n\r\nThis 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.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1475/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 982780906, "node_id": "MDExOlB1bGxSZXF1ZXN0NzIyNDgwNTQy", "number": 1453, "title": "Bump black from 21.7b0 to 21.8b0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 2, "created_at": "2021-08-30T13:13:39Z", "updated_at": "2021-09-14T13:10:40Z", "closed_at": "2021-09-14T13:10:38Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1453", "body": "Bumps [black](https://github.com/psf/black) from 21.7b0 to 21.8b0.\n
\nRelease notes\n

Sourced from black's releases.

\n
\n

21.8b0

\n

Black

\n
    \n
  • Add support for formatting Jupyter Notebook files (#2357)
  • \n
  • Move from appdirs dependency to platformdirs (#2375)
  • \n
  • Present a more user-friendly error if .gitignore is invalid (#2414)
  • \n
  • The failsafe for accidentally added backslashes in f-string expressions has been hardened to handle more edge cases during quote normalization (#2437)
  • \n
  • Avoid changing a function return type annotation's type to a tuple by adding a trailing comma (#2384)
  • \n
  • Parsing support has been added for unparenthesized walruses in set literals, set comprehensions, and indices (#2447).
  • \n
  • Pin setuptools-scm build-time dependency version (#2457)
  • \n
  • Exclude typing-extensions version 3.10.0.1 due to it being broken on Python 3.10 (#2460)
  • \n
\n

Blackd

\n
    \n
  • Replace sys.exit(-1) with raise ImportError as it plays more nicely with tools that scan installed packages (#2440)
  • \n
\n

Integrations

\n
    \n
  • The provided pre-commit hooks no longer specify language_version to avoid overriding default_language_version (#2430)
  • \n
\n
\n
\n
\nChangelog\n

Sourced from black's changelog.

\n
\n

21.8b0

\n

Black

\n
    \n
  • Add support for formatting Jupyter Notebook files (#2357)
  • \n
  • Move from appdirs dependency to platformdirs (#2375)
  • \n
  • Present a more user-friendly error if .gitignore is invalid (#2414)
  • \n
  • The failsafe for accidentally added backslashes in f-string expressions has been\nhardened to handle more edge cases during quote normalization (#2437)
  • \n
  • Avoid changing a function return type annotation's type to a tuple by adding a\ntrailing comma (#2384)
  • \n
  • Parsing support has been added for unparenthesized walruses in set literals, set\ncomprehensions, and indices (#2447).
  • \n
  • Pin setuptools-scm build-time dependency version (#2457)
  • \n
  • Exclude typing-extensions version 3.10.0.1 due to it being broken on Python 3.10\n(#2460)
  • \n
\n

Blackd

\n
    \n
  • Replace sys.exit(-1) with raise ImportError as it plays more nicely with tools that\nscan installed packages (#2440)
  • \n
\n

Integrations

\n
    \n
  • The provided pre-commit hooks no longer specify language_version to avoid overriding\ndefault_language_version (#2430)
  • \n
\n
\n
\n
\nCommits\n\n
\n
\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=21.7b0&new-version=21.8b0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1453/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 930855052, "node_id": "MDExOlB1bGxSZXF1ZXN0Njc4NDU5NTU0", "number": 1385, "title": "Fix + improve get_metadata plugin hook docs", "user": {"value": 2670795, "label": "brandonrobertz"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-06-27T05:43:20Z", "updated_at": "2021-09-13T18:53:11Z", "closed_at": "2021-09-13T18:53:11Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1385", "body": "This fixes documentation inaccuracies and adds a disclaimer about the signature of the `get_metadata` hook.\r\n\r\nAddresses the following comments:\r\n- https://github.com/simonw/datasette/issues/1384#issuecomment-869069926\r\n- https://github.com/simonw/datasette/issues/1384#issuecomment-869075368", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1385/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 991206402, "node_id": "MDExOlB1bGxSZXF1ZXN0NzI5NzA0NTM3", "number": 1465, "title": "add support for -o --get /path", "user": {"value": 51016, "label": "ctb"}, "state": "open", "locked": 0, "assignee": null, "milestone": null, "comments": 0, "created_at": "2021-09-08T14:30:42Z", "updated_at": "2021-09-08T14:31:45Z", "closed_at": null, "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1465", "body": "Fixes https://github.com/simonw/datasette/issues/1459\r\n\r\nAdds support for `--open --get /path` to be used in combination.\r\n\r\nIf `--open` is provided alone, datasette will open a web page to a default URL.\r\nIf `--get ` is provided alone, datasette will output the result of doing a GET to that URL and then exit.\r\nIf `--open --get ` are provided together, datasette will open a web page to that URL.\r\n\r\nTODO items:\r\n- [ ] update documentation\r\n- [ ] print out error message when `--root --open --get ` is used\r\n- [ ] adjust code to require that `` start with a `/` when `-o --get ` is used\r\n- [ ] add test(s)\r\n\r\nnote, '@CTB' is used in this PR to flag code that needs revisiting.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1465/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 1, "state_reason": null} {"id": 988325628, "node_id": "MDExOlB1bGxSZXF1ZXN0NzI3MjY1MDI1", "number": 1455, "title": "Add scientists to target groups", "user": {"value": 198537, "label": "rgieseke"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 3, "created_at": "2021-09-04T16:28:58Z", "updated_at": "2021-09-04T16:32:21Z", "closed_at": "2021-09-04T16:31:38Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1455", "body": "Not sure if you want them mentioned explicitly (it's already a long list), but following up on https://twitter.com/simonw/status/1434176989565382656", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1455/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 947640902, "node_id": "MDExOlB1bGxSZXF1ZXN0NjkyNTk2MDA2", "number": 1400, "title": "Bump black from 21.6b0 to 21.7b0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-07-19T13:13:41Z", "updated_at": "2021-08-25T01:29:56Z", "closed_at": "2021-08-25T01:29:55Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1400", "body": "Bumps [black](https://github.com/psf/black) from 21.6b0 to 21.7b0.\n
\nRelease notes\n

Sourced from black's releases.

\n
\n

21.7b0

\n

Black

\n
    \n
  • Configuration files using TOML features higher than spec v0.5.0 are now supported\n(#2301)
  • \n
  • Add primer support and test for code piped into black via STDIN (#2315)
  • \n
  • Fix internal error when FORCE_OPTIONAL_PARENTHESES feature is enabled (#2332)
  • \n
  • Accept empty stdin (#2346)
  • \n
  • Provide a more useful error when parsing fails during AST safety checks (#2304)
  • \n
\n

Docker

\n
    \n
  • Add new latest_release tag automation to follow latest black release on docker\nimages (#2374)
  • \n
\n

Integrations

\n
    \n
  • The vim plugin now searches upwards from the directory containing the current buffer\ninstead of the current working directory for pyproject.toml. (#1871)
  • \n
  • The vim plugin now reads the correct string normalization option in pyproject.toml\n(#1869)
  • \n
  • The vim plugin no longer crashes Black when there's boolean values in pyproject.toml\n(#1869)
  • \n
\n
\n
\n
\nChangelog\n

Sourced from black's changelog.

\n
\n

21.7b0

\n

Black

\n
    \n
  • Configuration files using TOML features higher than spec v0.5.0 are now supported\n(#2301)
  • \n
  • Add primer support and test for code piped into black via STDIN (#2315)
  • \n
  • Fix internal error when FORCE_OPTIONAL_PARENTHESES feature is enabled (#2332)
  • \n
  • Accept empty stdin (#2346)
  • \n
  • Provide a more useful error when parsing fails during AST safety checks (#2304)
  • \n
\n

Docker

\n
    \n
  • Add new latest_release tag automation to follow latest black release on docker\nimages (#2374)
  • \n
\n

Integrations

\n
    \n
  • The vim plugin now searches upwards from the directory containing the current buffer\ninstead of the current working directory for pyproject.toml. (#1871)
  • \n
  • The vim plugin now reads the correct string normalization option in pyproject.toml\n(#1869)
  • \n
  • The vim plugin no longer crashes Black when there's boolean values in pyproject.toml\n(#1869)
  • \n
\n
\n
\n
\nCommits\n\n
\n
\n\n\n[![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)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1400/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 970386262, "node_id": "MDExOlB1bGxSZXF1ZXN0NzEyMzQ2MTk5", "number": 1433, "title": "Update trustme requirement from <0.9,>=0.7 to >=0.7,<0.10", "user": {"value": 49699333, "label": "dependabot[bot]"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-08-13T13:10:24Z", "updated_at": "2021-08-25T01:29:27Z", "closed_at": "2021-08-25T01:29:26Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1433", "body": "Updates the requirements on [trustme](https://github.com/python-trio/trustme) to permit the latest version.\n
\nCommits\n
    \n
  • 8fc5bf9 Bump version to 0.9.0
  • \n
  • 913e21d Bump types-cryptography from 3.3.3 to 3.3.5 (#342)
  • \n
  • c66709d Bump types-pyopenssl from 20.0.4 to 20.0.5 (#343)
  • \n
  • 5131f79 Add type annotations (#341)
  • \n
  • a411dad Bump charset-normalizer from 2.0.3 to 2.0.4 (#340)
  • \n
  • be5ec8a Bump sphinx from 4.1.1 to 4.1.2
  • \n
  • d3b8865 Bump charset-normalizer from 2.0.2 to 2.0.3
  • \n
  • 4503bef Merge pull request #334 from python-trio/dependabot/pip/charset-normalizer-2.0.2
  • \n
  • ce8099d Merge pull request #335 from python-trio/dependabot/pip/sphinx-4.1.1
  • \n
  • 8b6d3c6 Merge pull request #336 from python-trio/dependabot/pip/idna-3.2
  • \n
  • Additional commits viewable in compare view
  • \n
\n
\n
\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n
\nDependabot commands and options\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@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)\n- `@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)\n- `@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)\n\n\n
", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1433/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 978614898, "node_id": "MDExOlB1bGxSZXF1ZXN0NzE5MTc1NTkz", "number": 1447, "title": "Remove underscore from search mode parameter name", "user": {"value": 127565, "label": "wragge"}, "state": "closed", "locked": 0, "assignee": null, "milestone": null, "comments": 1, "created_at": "2021-08-25T01:28:04Z", "updated_at": "2021-08-25T01:28:58Z", "closed_at": "2021-08-25T01:28:58Z", "author_association": "CONTRIBUTOR", "pull_request": "simonw/datasette/pulls/1447", "body": "The fulltext search documentation refers to the parameter as `searchmode` but the `metadata.json` example uses `search_mode`. The latter doesn't actually seem to work.", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/1447/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null}