{"id": 1022524090, "node_id": "PR_kwDOBm6k_c488nq6", "number": 1778, "state": "closed", "locked": 0, "title": "Use Read the Docs action v1", "user": {"value": 244656, "label": "humitos"}, "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", "created_at": "2022-08-10T10:30:50Z", "updated_at": "2022-08-20T00:04:17Z", "closed_at": "2022-08-20T00:04:17Z", "merged_at": "2022-08-20T00:04:17Z", "merge_commit_sha": "663ac431fe7202c85967568d82b2034f92b9aa43", "assignee": null, "milestone": null, "draft": 0, "head": "003ac653b0bbd9dd30f0f7855e6ecfc9a045d486", "base": "8cfc72336878dd846d149658e99cc598e835b661", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1778", "merged_by": null, "auto_merge": null} {"id": 1562664755, "node_id": "PR_kwDOBm6k_c5dJF8z", "number": 2200, "state": "closed", "locked": 0, "title": "Bump the python-packages group with 1 update", "user": {"value": 49699333, "label": "dependabot[bot]"}, "body": "Bumps the python-packages group with 1 update: [black](https://github.com/psf/black).\n\n
\nRelease notes\n

Sourced from black's releases.

\n
\n

23.10.0

\n

Stable style

\n\n

Preview style

\n\n

Configuration

\n\n

Parser

\n\n

Output

\n\n

Integrations

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

Sourced from black's changelog.

\n
\n

23.10.0

\n

Stable style

\n\n

Preview style

\n\n

Configuration

\n\n

Parser

\n\n

Output

\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=23.9.1&new-version=23.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 show ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n
\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--2200.org.readthedocs.build/en/2200/\n\r\n", "created_at": "2023-10-18T13:25:55Z", "updated_at": "2023-10-24T13:40:29Z", "closed_at": "2023-10-24T13:40:26Z", "merged_at": null, "merge_commit_sha": "dc3806dfbfbcfab2f7d75a8e91e7bd8b3dfc11f2", "assignee": null, "milestone": null, "draft": 0, "head": "011bb920c5e8061aaf3d90d47e3e5bb684eef2ba", "base": "452a587e236ef642cbc6ae345b58767ea8420cb5", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/2200", "merged_by": null, "auto_merge": null} {"id": 193361341, "node_id": "MDExOlB1bGxSZXF1ZXN0MTkzMzYxMzQx", "number": 307, "state": "closed", "locked": 0, "title": "Initial sketch of custom URL routing, refs #306", "user": {"value": 9599, "label": "simonw"}, "body": "See #306 for background on this.", "created_at": "2018-06-07T15:26:48Z", "updated_at": "2018-06-07T15:29:54Z", "closed_at": "2018-06-07T15:29:41Z", "merged_at": null, "merge_commit_sha": "8c6663d3cc8043fc6f5c796275e80b0445bdff12", "assignee": null, "milestone": null, "draft": 0, "head": "018af454f286120452e33d2568dd40908474a8a8", "base": "a246f476b4fe490f5450836b22961bc607e6b4b0", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/307", "merged_by": null, "auto_merge": null} {"id": 250628275, "node_id": "MDExOlB1bGxSZXF1ZXN0MjUwNjI4Mjc1", "number": 407, "state": "closed", "locked": 0, "title": "Heroku --include-vcs-ignore", "user": {"value": 9599, "label": "simonw"}, "body": "Should mean `datasette publish heroku` can work under Travis, unlike this failure:\r\n\r\nhttps://travis-ci.org/simonw/fivethirtyeight-datasette/builds/488047550\r\n\r\n```\r\n2.25s$ datasette publish heroku fivethirtyeight.db -m metadata.json -n fivethirtyeight-datasette\r\ntar: unrecognized option '--exclude-vcs-ignores'\r\nTry 'tar --help' or 'tar --usage' for more information.\r\n \u25b8 Command failed: tar cz -C /tmp/tmpuaxm7i8f --exclude-vcs-ignores --exclude\r\n \u25b8 .git --exclude .gitmodules . >\r\n \u25b8 /tmp/f49440e0-1bf3-4d3f-9eb0-fbc2967d1fd4.tar.gz\r\n \u25b8 tar: unrecognized option '--exclude-vcs-ignores'\r\n \u25b8 Try 'tar --help' or 'tar --usage' for more information.\r\n \u25b8 \r\nThe command \"datasette publish heroku fivethirtyeight.db -m metadata.json -n fivethirtyeight-datasette\" exited with 0.\r\n```\r\n\r\nThe fix for that issue is to call the heroku command like this:\r\n\r\n heroku builds:create -a app_name --include-vcs-ignore\r\n\r\n", "created_at": "2019-02-06T04:06:20Z", "updated_at": "2019-02-06T04:31:30Z", "closed_at": "2019-02-06T04:15:47Z", "merged_at": "2019-02-06T04:15:46Z", "merge_commit_sha": "195a5b36349d0d24a6bbb758cebb719b6de303b6", "assignee": null, "milestone": null, "draft": 0, "head": "01978ddb9682c828cafddaf9ca625e08ba3ba3a4", "base": "436b8bc1d17c2ab415800ab209204f94e7f7929e", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/407", "merged_by": null, "auto_merge": null} {"id": 526847823, "node_id": "MDExOlB1bGxSZXF1ZXN0NTI2ODQ3ODIz", "number": 7, "state": "closed", "locked": 0, "title": "Fixed conflicting CLI flags", "user": {"value": 8944, "label": "tlockney"}, "body": "The `-a` used for the auth credentials and the shortened form of the `--all` flags were in conflict on the `fetch` command. To be consistent with other `-to-sqlite` libraries in the Dogsheep ecosystem, I removed the shortened form of the `--all` flag.", "created_at": "2020-11-24T23:25:12Z", "updated_at": "2022-08-21T21:11:56Z", "closed_at": "2022-08-21T21:11:56Z", "merged_at": "2022-08-21T21:11:56Z", "merge_commit_sha": "4d88c84a66a501e4cb0dd2de9949072b8d42b859", "assignee": null, "milestone": null, "draft": 0, "head": "02576f9b1c234128c6a3d52123761af8486beb57", "base": "b956a01464007fe227895fe6eb6c942ed71298c8", "author_association": "CONTRIBUTOR", "repo": {"value": 213286752, "label": "pocket-to-sqlite"}, "url": "https://github.com/dogsheep/pocket-to-sqlite/pull/7", "merged_by": null, "auto_merge": null} {"id": 381666777, "node_id": "MDExOlB1bGxSZXF1ZXN0MzgxNjY2Nzc3", "number": 688, "state": "closed", "locked": 0, "title": "Don't count rows on homepage for DBs > 100MB", "user": {"value": 9599, "label": "simonw"}, "body": "Closes #649.", "created_at": "2020-02-29T01:01:06Z", "updated_at": "2020-02-29T01:08:30Z", "closed_at": "2020-02-29T01:08:29Z", "merged_at": "2020-02-29T01:08:29Z", "merge_commit_sha": "7f5a330377fd7db1f6d1efa5686d183bcaf89217", "assignee": null, "milestone": null, "draft": 0, "head": "025fdd46f77822c0cbeb7856611c0a65a9b83057", "base": "0f8e91c68f2d2ad48efc8324b12762bf8b58facd", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/688", "merged_by": null, "auto_merge": null} {"id": 297243073, "node_id": "MDExOlB1bGxSZXF1ZXN0Mjk3MjQzMDcz", "number": 559, "state": "closed", "locked": 0, "title": "Bump to uvicorn 0.8.4", "user": {"value": 9599, "label": "simonw"}, "body": "https://github.com/encode/uvicorn/commits/0.8.4\r\n\r\nQuery strings will now be included in log files: https://github.com/encode/uvicorn/pull/384", "created_at": "2019-07-12T22:30:29Z", "updated_at": "2019-07-13T22:34:58Z", "closed_at": "2019-07-13T22:34:58Z", "merged_at": "2019-07-13T22:34:58Z", "merge_commit_sha": "d224ee2c98ac39c2c6e21a0ac0c62e5c3e1ccd11", "assignee": null, "milestone": null, "draft": 0, "head": "029e3d53634cc38690d5b56427a3c87851a61b09", "base": "f2006cca80040871439055ae6ccbc14e589bdf4b", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/559", "merged_by": null, "auto_merge": null} {"id": 754942128, "node_id": "PR_kwDOBm6k_c4s_4Cw", "number": 1484, "state": "closed", "locked": 0, "title": "GitHub Actions: Add Python 3.10 to the tests", "user": {"value": 3709715, "label": "cclauss"}, "body": null, "created_at": "2021-10-11T06:03:03Z", "updated_at": "2021-10-11T06:03:31Z", "closed_at": "2021-10-11T06:03:28Z", "merged_at": null, "merge_commit_sha": "69027b8c3e0e2236acd817a6fa5d32f762e3e9aa", "assignee": null, "milestone": null, "draft": 0, "head": "02c3218ca093df8b595d8ba7d88a32a0207b6385", "base": "0d5cc20aeffa3537cfc9296d01ec24b9c6e23dcf", "author_association": "FIRST_TIME_CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1484", "merged_by": null, "auto_merge": null} {"id": 525371029, "node_id": "MDExOlB1bGxSZXF1ZXN0NTI1MzcxMDI5", "number": 8, "state": "closed", "locked": 0, "title": "fix import error if note has no \"updated\" element", "user": {"value": 4028322, "label": "mkorosec"}, "body": "I got the following error when executing evernote-to-sqlite enex evernote.db evernote.enex\r\n``` \r\n... \r\n File \"evernote_to_sqlite/cli.py\", line 31, in enex\r\n save_note(db, note)\r\n File \"evernote_to_sqlite/utils.py\", line 28, in save_note\r\n updated = note.find(\"updated\").text\r\nAttributeError: 'NoneType' object has no attribute 'text'\r\n``` \r\n\r\nSeems that in some cases the updated element is not added to the note, this is a part of the problematic note:\r\n\r\n``` \r\n20201019T074518Z\r\n\r\n web.clip7\r\n webclipper.evernote\r\n\r\n```", "created_at": "2020-11-22T22:51:05Z", "updated_at": "2021-02-11T22:34:06Z", "closed_at": "2021-02-11T22:34:06Z", "merged_at": "2021-02-11T22:34:06Z", "merge_commit_sha": "1c8457ddaa487aa2e677963d37217fcb6d544e59", "assignee": null, "milestone": null, "draft": 0, "head": "03b0c240d5f12c2d651c4cb25f92b0fecc7f7419", "base": "1c355e5678877e14eefa2a5fab5a267342a03335", "author_association": "CONTRIBUTOR", "repo": {"value": 303218369, "label": "evernote-to-sqlite"}, "url": "https://github.com/dogsheep/evernote-to-sqlite/pull/8", "merged_by": null, "auto_merge": null} {"id": 730020867, "node_id": "MDExOlB1bGxSZXF1ZXN0NzMwMDIwODY3", "number": 1467, "state": "closed", "locked": 0, "title": "Add Authorization header when CORS flag is set", "user": {"value": 3058200, "label": "jameslittle230"}, "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.", "created_at": "2021-09-08T22:14:41Z", "updated_at": "2021-10-17T02:29:07Z", "closed_at": "2021-10-14T18:54:18Z", "merged_at": null, "merge_commit_sha": "15f258735ddee555028a075c09e1e8f74069be70", "assignee": null, "milestone": null, "draft": 0, "head": "05109e8d61dedd477c4cedfb89b1da65610f70d1", "base": "d57ab156b35ec642549fb69d08279850065027d2", "author_association": "NONE", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1467", "merged_by": null, "auto_merge": null} {"id": 560760145, "node_id": "MDExOlB1bGxSZXF1ZXN0NTYwNzYwMTQ1", "number": 1204, "state": "open", "locked": 0, "title": "WIP: Plugin includes", "user": {"value": 9599, "label": "simonw"}, "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", "created_at": "2021-01-25T03:59:06Z", "updated_at": "2021-12-17T07:10:49Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "98f06a766317a40035962416cf3211d7a374866a", "assignee": null, "milestone": null, "draft": 1, "head": "05258469ae39bcaad17beb57c5b7eeab0d58a589", "base": "07e163561592c743e4117f72102fcd350a600909", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1204", "merged_by": null, "auto_merge": null} {"id": 295748268, "node_id": "MDExOlB1bGxSZXF1ZXN0Mjk1NzQ4MjY4", "number": 556, "state": "closed", "locked": 0, "title": "Add support for running datasette as a module", "user": {"value": 3243482, "label": "abdusco"}, "body": "This PR allows running datasette using `python -m datasette` command in addition to just running the executable.\r\n\r\nThis function is quite useful when debugging a plugin in a project because IDEs like PyCharm can easily start a debug session when datasette is run as a module in contrast to trying to attach a debugger to a running process.\r\n\r\n![image](https://user-images.githubusercontent.com/3243482/60890448-fc4ede80-a263-11e9-8b42-d2a3db8d1a59.png)\r\n", "created_at": "2019-07-09T13:13:30Z", "updated_at": "2019-07-11T16:07:45Z", "closed_at": "2019-07-11T16:07:44Z", "merged_at": "2019-07-11T16:07:44Z", "merge_commit_sha": "9ca860e54fe480d0a365c0c1d8d085926d12be1e", "assignee": null, "milestone": null, "draft": 0, "head": "056a7eac9480cb814d9c453b983e6b2b831e0ca1", "base": "81fa8b6cdc5457b42a224779e5291952314e8d20", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/556", "merged_by": null, "auto_merge": null} {"id": 1167644140, "node_id": "PR_kwDOBm6k_c5FmNXs", "number": 1961, "state": "closed", "locked": 0, "title": "Use click.echo() instead of print() for --root option", "user": {"value": 9599, "label": "simonw"}, "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", "created_at": "2022-12-16T00:54:56Z", "updated_at": "2022-12-16T00:55:19Z", "closed_at": "2022-12-16T00:55:18Z", "merged_at": "2022-12-16T00:55:18Z", "merge_commit_sha": "013496862f4d4b441ab61255242b838b24287607", "assignee": null, "milestone": null, "draft": 0, "head": "06d20c792f8c872118edd84973308fb3e5137b5e", "base": "0b68996cc511b3a801f0cd0157bd66332d75f46f", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1961", "merged_by": null, "auto_merge": null} {"id": 729731441, "node_id": "MDExOlB1bGxSZXF1ZXN0NzI5NzMxNDQx", "number": 326, "state": "closed", "locked": 0, "title": "Test against 3.10-dev", "user": {"value": 9599, "label": "simonw"}, "body": "This tests against the latest 3.10 RC, https://www.python.org/downloads/release/python-3100rc2/", "created_at": "2021-09-08T15:01:15Z", "updated_at": "2021-10-13T21:49:28Z", "closed_at": "2021-10-13T21:49:28Z", "merged_at": null, "merge_commit_sha": "c563260408e1b802cbbc81ec7c1e398350a1ca3a", "assignee": null, "milestone": null, "draft": 0, "head": "078a08765d8aefa5ce376a03b2643d4ebe1aa57e", "base": "77c240df56068341561e95e4a412cbfa24dc5bc7", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/326", "merged_by": null, "auto_merge": null} {"id": 372273608, "node_id": "MDExOlB1bGxSZXF1ZXN0MzcyMjczNjA4", "number": 33, "state": "closed", "locked": 0, "title": "Upgrade to sqlite-utils 2.2.1", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2020-02-07T07:32:12Z", "updated_at": "2020-03-20T19:21:42Z", "closed_at": "2020-03-20T19:21:41Z", "merged_at": null, "merge_commit_sha": "5338f6baab3ec1424431133968d8b64a656ce4c4", "assignee": null, "milestone": null, "draft": 0, "head": "08f51271d6309aad698b9e8a7587fcebbbd67781", "base": "35c18a09fa664324dcb75e5e58ccb90644456d02", "author_association": "MEMBER", "repo": {"value": 206156866, "label": "twitter-to-sqlite"}, "url": "https://github.com/dogsheep/twitter-to-sqlite/pull/33", "merged_by": null, "auto_merge": null} {"id": 603082280, "node_id": "MDExOlB1bGxSZXF1ZXN0NjAzMDgyMjgw", "number": 1282, "state": "closed", "locked": 0, "title": "Fix little typo", "user": {"value": 192568, "label": "mroswell"}, "body": "", "created_at": "2021-03-29T19:45:28Z", "updated_at": "2021-03-29T19:57:34Z", "closed_at": "2021-03-29T19:57:34Z", "merged_at": "2021-03-29T19:57:34Z", "merge_commit_sha": "7b1a9a1999eb9326ce8ec830d75ac200e5279c46", "assignee": null, "milestone": null, "draft": 0, "head": "08f7427afcff69fa93ebaf5916588b5ad8bd4e0f", "base": "0486303b60ce2784fd2e2ecdbecf304b7d6e6659", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1282", "merged_by": null, "auto_merge": null} {"id": 1355563020, "node_id": "PR_kwDOBm6k_c5QzEAM", "number": 2076, "state": "open", "locked": 0, "title": "Datsette gpt plugin", "user": {"value": 130708713, "label": "StudioCordillera"}, "body": "\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--2076.org.readthedocs.build/en/2076/\n\r\n", "created_at": "2023-05-18T11:22:30Z", "updated_at": "2023-05-18T11:22:45Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "71658bfe72b75bdceb2b29e13fd610511c8b908c", "assignee": null, "milestone": null, "draft": 0, "head": "093693edd2a177a38cbc5570aaef769e5cbffac1", "base": "49184c569cd70efbda4f3f062afef3a34401d8d5", "author_association": "FIRST_TIME_CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/2076", "merged_by": null, "auto_merge": null} {"id": 774610166, "node_id": "PR_kwDOCGYnMM4uK5z2", "number": 337, "state": "closed", "locked": 0, "title": "Default values for `--attach` and `--param` options", "user": {"value": 771193, "label": "urbas"}, "body": "It seems that `click` 8.x uses `None` as the default value for `multiple=True` options.\r\n\r\nThis change makes the code forward-compatible with `click` 8.x.\r\n\r\nSee this build failure for more info: https://hydra.nixos.org/build/156926608", "created_at": "2021-11-05T21:57:53Z", "updated_at": "2021-11-05T22:33:03Z", "closed_at": "2021-11-05T22:33:02Z", "merged_at": null, "merge_commit_sha": "eb8bf28da1794638a5693043cd5268f506a674d3", "assignee": null, "milestone": null, "draft": 0, "head": "095fc64c5399d75d44d304571a21293d06d817f0", "base": "fda4dad23a0494890267fbe8baf179e2b56ee914", "author_association": "NONE", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/337", "merged_by": null, "auto_merge": null} {"id": 1015591301, "node_id": "PR_kwDOCGYnMM48iLGF", "number": 462, "state": "closed", "locked": 0, "title": "Discord badge", "user": {"value": 9599, "label": "simonw"}, "body": "Also testing fix for:\r\n- https://github.com/readthedocs/readthedocs-preview/issues/10\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://sqlite-utils--462.org.readthedocs.build/en/462/\n\r\n", "created_at": "2022-08-02T20:56:04Z", "updated_at": "2022-08-02T21:15:57Z", "closed_at": "2022-08-02T21:15:52Z", "merged_at": "2022-08-02T21:15:52Z", "merge_commit_sha": "271433fdd18e436b0a527ab899cb6f6fa67f23d0", "assignee": null, "milestone": null, "draft": 0, "head": "0a14a031385f2647be0b9d15d96c1d44d05c2296", "base": "98a28cbfe6cea67f6334b42b74f35b0ddd309561", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/462", "merged_by": null, "auto_merge": null} {"id": 400579136, "node_id": "MDExOlB1bGxSZXF1ZXN0NDAwNTc5MTM2", "number": 722, "state": "closed", "locked": 0, "title": "Update jinja2 requirement from ~=2.10.3 to >=2.10.3,<2.12.0", "user": {"value": 27856297, "label": "dependabot-preview[bot]"}, "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

2.11.1

\n

This fixes an issue in async environment when indexing the result of an attribute lookup, like {{ data.items[1:] }}.

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

Sourced from jinja2's changelog.

\n
\n

Version 2.11.1

\n

Released 2020-01-30

\n\n

Version 2.11.0

\n

Released 2020-01-27

\n\n ... (truncated)\n
\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**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.\n\nYou can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).\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- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\n\n\n
", "created_at": "2020-04-08T01:25:24Z", "updated_at": "2020-05-04T17:13:26Z", "closed_at": "2020-05-04T17:13:16Z", "merged_at": "2020-05-04T17:13:16Z", "merge_commit_sha": "aa064de3f400899dbf61f2d33a035fba4017596c", "assignee": null, "milestone": null, "draft": 0, "head": "0a503b7fdb0cce1bb82e18c4552a4f92808fe41f", "base": "d55fe8cdfc2ce7bc6960bf2507766c1fcd1d31a7", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/722", "merged_by": null, "auto_merge": null} {"id": 189318453, "node_id": "MDExOlB1bGxSZXF1ZXN0MTg5MzE4NDUz", "number": 277, "state": "closed", "locked": 0, "title": "Refactor inspect logic", "user": {"value": 45057, "label": "russss"}, "body": "This pulls the logic for inspect out into a new file which makes it a bit easier to understand.\r\n\r\nThis was going to be the first part of an implementation for #276, but it seems like that might take a while so I'm going to PR a few bits of refactoring individually.", "created_at": "2018-05-21T08:49:31Z", "updated_at": "2018-05-22T16:07:24Z", "closed_at": "2018-05-22T14:03:07Z", "merged_at": "2018-05-22T14:03:07Z", "merge_commit_sha": "58b5a37dbbf13868a46bcbb284509434e66eca25", "assignee": null, "milestone": null, "draft": 0, "head": "0b81e047ad27b67ba17e8c176e38a94cf4548115", "base": "d59366d36e95b973d674e62edff0168d5bdd90eb", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/277", "merged_by": null, "auto_merge": null} {"id": 672620180, "node_id": "MDExOlB1bGxSZXF1ZXN0NjcyNjIwMTgw", "number": 1378, "state": "closed", "locked": 0, "title": "Update pytest-xdist requirement from <2.3,>=2.2.1 to >=2.2.1,<2.4", "user": {"value": 49699333, "label": "dependabot[bot]"}, "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.3.0 (2021-06-16)

\n

Deprecations and Removals

\n\n

Features

\n\n

Bug Fixes

\n\n

Trivial Changes

\n\n

pytest-xdist 2.2.1 (2021-02-09)

\n

Bug Fixes

\n\n

pytest-xdist 2.2.0 (2020-12-14)

\n

Features

\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
", "created_at": "2021-06-17T13:11:56Z", "updated_at": "2021-06-20T00:17:07Z", "closed_at": "2021-06-20T00:17:06Z", "merged_at": "2021-06-20T00:17:06Z", "merge_commit_sha": "5335f360f4d57d70cab3694b08f15729c4ca2fe2", "assignee": null, "milestone": null, "draft": 0, "head": "0c132d13de2d57004a36ece36217b337478ce4f4", "base": "83e9c8bc7585dcc62f200e37c2daefcd669ee05e", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1378", "merged_by": null, "auto_merge": null} {"id": 301824097, "node_id": "MDExOlB1bGxSZXF1ZXN0MzAxODI0MDk3", "number": 51, "state": "closed", "locked": 0, "title": "Fix for too many SQL variables, closes #50", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2019-07-28T11:30:30Z", "updated_at": "2019-07-28T11:59:32Z", "closed_at": "2019-07-28T11:59:32Z", "merged_at": "2019-07-28T11:59:32Z", "merge_commit_sha": "9cb045284ede8009c12abdb1755b5b20f6ccff5f", "assignee": null, "milestone": null, "draft": 0, "head": "0c1b8b7f96be874bb63801f69323960f277aa49a", "base": "9b7be79c86b4283f24a64f62257c918f12542997", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/51", "merged_by": null, "auto_merge": null} {"id": 327172545, "node_id": "MDExOlB1bGxSZXF1ZXN0MzI3MTcyNTQ1", "number": 590, "state": "closed", "locked": 0, "title": "Handle spaces in DB names", "user": {"value": 2657547, "label": "rixx"}, "body": "Closes #503", "created_at": "2019-10-11T12:18:22Z", "updated_at": "2019-11-04T23:16:31Z", "closed_at": "2019-11-04T23:16:30Z", "merged_at": "2019-11-04T23:16:30Z", "merge_commit_sha": "931bfc66613aa3e22f8314df5c0d0758baf31f38", "assignee": null, "milestone": null, "draft": 0, "head": "0c306e89e4f97f64921e4f6d1fe7bab52fad6ade", "base": "52fa79c6075f0830ff635b81d957c64d877a05aa", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/590", "merged_by": null, "auto_merge": null} {"id": 493162767, "node_id": "MDExOlB1bGxSZXF1ZXN0NDkzMTYyNzY3", "number": 178, "state": "closed", "locked": 0, "title": "Update README.md", "user": {"value": 19921, "label": "shakeel"}, "body": "The `sqlite-utils insert releases.db releases - --pk` is missing the pk field name, added ` \"id\"` to fix it.", "created_at": "2020-09-25T15:52:11Z", "updated_at": "2020-10-01T14:18:30Z", "closed_at": "2020-09-30T20:29:28Z", "merged_at": "2020-09-30T20:29:28Z", "merge_commit_sha": "cada1017edcfa691c2314d7ad1b7c7576495317f", "assignee": null, "milestone": null, "draft": 0, "head": "0c6a81dae802a55d5469c18cd32402d11b6e8a59", "base": "94fc62857ee2655a21d85f6dae84b67bbfa5956d", "author_association": "CONTRIBUTOR", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/178", "merged_by": null, "auto_merge": null} {"id": 1191716406, "node_id": "PR_kwDOBm6k_c5HCCY2", "number": 1984, "state": "closed", "locked": 0, "title": "Upgrade Sphinx", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1971\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--1984.org.readthedocs.build/en/1984/\n\r\n", "created_at": "2023-01-10T02:00:40Z", "updated_at": "2023-01-10T02:02:33Z", "closed_at": "2023-01-10T02:02:33Z", "merged_at": "2023-01-10T02:02:32Z", "merge_commit_sha": "8e7073404379d79a2d269167a12bbb58439edd39", "assignee": null, "milestone": null, "draft": 0, "head": "0c8b3f5ca1385c804c696f1fa61c24de29ae4755", "base": "4880638f13c3a1abc53f395cde39ac848daf416d", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1984", "merged_by": null, "auto_merge": null} {"id": 261418285, "node_id": "MDExOlB1bGxSZXF1ZXN0MjYxNDE4Mjg1", "number": 416, "state": "closed", "locked": 0, "title": "URL hashing now optional: turn on with --config hash_urls:1 (#418)", "user": {"value": 9599, "label": "simonw"}, "body": "", "created_at": "2019-03-15T04:26:06Z", "updated_at": "2019-03-17T22:55:04Z", "closed_at": "2019-03-17T22:55:04Z", "merged_at": "2019-03-17T22:55:04Z", "merge_commit_sha": "6f6d0ff2b41f1cacaf42287b1b230b646bcba9ee", "assignee": null, "milestone": null, "draft": 0, "head": "0d02a99c9665669540aebff981246d8c743072b3", "base": "afe9aa3ae03c485c5d6652741438d09445a486c1", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/416", "merged_by": null, "auto_merge": null} {"id": 434085235, "node_id": "MDExOlB1bGxSZXF1ZXN0NDM0MDg1MjM1", "number": 848, "state": "closed", "locked": 0, "title": "Reload support for config_dir mode.", "user": {"value": 49260, "label": "amjith"}, "body": "A reference implementation for adding support to reload when datasette is in the config_dir mode. \r\n\r\nThis implementation is flawed since it is watching the entire directory and any changes to the database will reload the server and adding unrelated files to the directory will also reload the server. ", "created_at": "2020-06-14T02:34:46Z", "updated_at": "2020-07-03T02:44:54Z", "closed_at": "2020-07-03T02:44:53Z", "merged_at": null, "merge_commit_sha": "888538efdbf545c0df524ca590a17fb6c6fa2419", "assignee": null, "milestone": null, "draft": 0, "head": "0d100d15aca93fae200b3bc2e29dfd60aaa4b384", "base": "57879dc8b346a435804a9e45ffaacbf2a0228bc6", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/848", "merged_by": null, "auto_merge": null} {"id": 1179812838, "node_id": "PR_kwDODEm0Qs5GUoPm", "number": 71, "state": "open", "locked": 0, "title": "Archive: Fix \"ni devices\" typo in importer", "user": {"value": 26161409, "label": "sometimes-i-send-pull-requests"}, "body": null, "created_at": "2022-12-28T23:33:31Z", "updated_at": "2022-12-28T23:33:31Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "7905dbd6e36bcabcfd9106c70ebb36ecf9e38260", "assignee": null, "milestone": null, "draft": 0, "head": "0d3c62e8ba6e545785069cc0ffc8dc1bad03db80", "base": "f09d611782a8372cfb002792dfa727325afb4db6", "author_association": "FIRST_TIME_CONTRIBUTOR", "repo": {"value": 206156866, "label": "twitter-to-sqlite"}, "url": "https://github.com/dogsheep/twitter-to-sqlite/pull/71", "merged_by": null, "auto_merge": null} {"id": 187770345, "node_id": "MDExOlB1bGxSZXF1ZXN0MTg3NzcwMzQ1", "number": 258, "state": "closed", "locked": 0, "title": "Add new metadata key persistent_urls which removes the hash from all database urls", "user": {"value": 247131, "label": "philroche"}, "body": "Add new metadata key \"persistent_urls\" which removes the hash from all database urls when set to \"true\"\r\n\r\nThis PR is just to gauge if this, or something like it, is something you would consider merging?\r\n\r\nI understand the reason why the substring of the hash is included in the url but\r\nthere are some use cases where the urls should persist across deployments. For bookmarks\r\nfor example or for scripts that use the JSON API.\r\n\r\nThis is the initial commit for this feature. Tests and documentation updates to follow.", "created_at": "2018-05-14T09:39:18Z", "updated_at": "2018-05-21T07:38:15Z", "closed_at": "2018-05-21T07:38:15Z", "merged_at": null, "merge_commit_sha": "457fcdfc82a0260db543d49006d49f8486f233b5", "assignee": null, "milestone": null, "draft": 0, "head": "0d77a896ccb16b34c86fdeef7738f2d056e27e02", "base": "2b79f2bdeb1efa86e0756e741292d625f91cb93d", "author_association": "NONE", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/258", "merged_by": null, "auto_merge": null} {"id": 1488782498, "node_id": "PR_kwDOBm6k_c5YvQSi", "number": 2158, "state": "open", "locked": 0, "title": "add brand option to metadata.json.", "user": {"value": 52261150, "label": "publicmatt"}, "body": "This adds a brand link to the top navbar if 'brand' key is populated in metadata.json. The link will be either '#' or use the contents of 'brand_url' in metadata.json for href.\r\n\r\nI was able to get this done on my own site by replacing `templates/_crumbs.html` with a custom version, but I thought it would be nice to incorporate this in the tool directly.\r\n\r\n![image](https://github.com/simonw/datasette/assets/52261150/fdfe9bb5-fee4-466c-8074-6132071d94e6)\r\n\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--2158.org.readthedocs.build/en/2158/\n\r\n", "created_at": "2023-08-24T22:37:41Z", "updated_at": "2023-08-24T22:37:57Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "20fad9361ea7173a3543fa16e4b6913a3a0f4b9e", "assignee": null, "milestone": null, "draft": 0, "head": "0d89c4bd19732487232ab2637cf5e8632f48986b", "base": "527cec66b0403e689c8fb71fc8b381a1d7a46516", "author_association": "FIRST_TIME_CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/2158", "merged_by": null, "auto_merge": null} {"id": 409153870, "node_id": "MDExOlB1bGxSZXF1ZXN0NDA5MTUzODcw", "number": 739, "state": "closed", "locked": 0, "title": "Configuration directory mode", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #731\r\n\r\nTODO:\r\n\r\n- [x] Decide how to combine explicit command-line options with items detected from the directory structure\r\n- [x] Add unit tests\r\n- [x] Implement `inspect-data.json` mechanism for populating `immutables`\r\n- [x] Add documentation", "created_at": "2020-04-26T20:37:46Z", "updated_at": "2020-04-27T16:30:25Z", "closed_at": "2020-04-27T16:30:25Z", "merged_at": "2020-04-27T16:30:25Z", "merge_commit_sha": "25014ca25eb70b4c1217558ebd14db2845973bfb", "assignee": null, "milestone": null, "draft": 0, "head": "0d8fa53fab672fcf16b6a75aa55b07ccd243fb96", "base": "1b7b66c465e44025ec73421bd69752e42f108321", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/739", "merged_by": null, "auto_merge": null} {"id": 187668890, "node_id": "MDExOlB1bGxSZXF1ZXN0MTg3NjY4ODkw", "number": 257, "state": "closed", "locked": 0, "title": "Refactor views", "user": {"value": 9599, "label": "simonw"}, "body": "* Split out view classes from main `app.py`\r\n* Run [black](https://github.com/ambv/black) against resulting code to apply opinionated source code formatting\r\n* Run [isort](https://github.com/timothycrosley/isort) to re-order my imports\r\n\r\nRefs #256 ", "created_at": "2018-05-13T13:00:50Z", "updated_at": "2018-05-14T03:04:25Z", "closed_at": "2018-05-14T03:04:24Z", "merged_at": "2018-05-14T03:04:24Z", "merge_commit_sha": "2b79f2bdeb1efa86e0756e741292d625f91cb93d", "assignee": null, "milestone": null, "draft": 0, "head": "0e2b41f3fa38456af32548c536f955c48c7637e8", "base": "4301a8f3ac69f2f54916e73cc90fcf216a9a3746", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/257", "merged_by": null, "auto_merge": null} {"id": 340743220, "node_id": "MDExOlB1bGxSZXF1ZXN0MzQwNzQzMjIw", "number": 635, "state": "closed", "locked": 0, "title": "Use Jinja async mode", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #628. Still needs documentation.", "created_at": "2019-11-14T01:20:57Z", "updated_at": "2019-11-14T23:14:23Z", "closed_at": "2019-11-14T23:14:23Z", "merged_at": "2019-11-14T23:14:22Z", "merge_commit_sha": "8c642f04e0608bf537fdd1f76d64c2367fb04d57", "assignee": null, "milestone": null, "draft": 0, "head": "0e8f8be1dbf89a6f689a5eea4a0534199a0028f6", "base": "b51f258d00bb3c3b401f15d46a1fbd50394dbe1c", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/635", "merged_by": null, "auto_merge": null} {"id": 668129441, "node_id": "MDExOlB1bGxSZXF1ZXN0NjY4MTI5NDQx", "number": 1374, "state": "closed", "locked": 0, "title": "Bump black from 21.5b2 to 21.6b0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "body": "Bumps [black](https://github.com/psf/black) from 21.5b2 to 21.6b0.\n
\nRelease notes\n

Sourced from black's releases.

\n
\n

21.6b0

\n

Black

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

Sourced from black's changelog.

\n
\n

21.6b0

\n

Black

\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.5b2&new-version=21.6b0)](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
", "created_at": "2021-06-11T13:07:39Z", "updated_at": "2021-06-13T15:33:23Z", "closed_at": "2021-06-13T15:33:22Z", "merged_at": "2021-06-13T15:33:22Z", "merge_commit_sha": "e7975657656ce02717f03703bb8ec17f2fe9b717", "assignee": null, "milestone": null, "draft": 0, "head": "0ef0dd5874ed39527ab12098a6c3da7ff8115c54", "base": "cd7678fde65319d7b6955ce9f4678ba4b9e64b66", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1374", "merged_by": null, "auto_merge": null} {"id": 621117978, "node_id": "MDExOlB1bGxSZXF1ZXN0NjIxMTE3OTc4", "number": 1306, "state": "closed", "locked": 0, "title": "Avoid error sorting by relationships if related tables are not allowed", "user": {"value": 416374, "label": "gfrmin"}, "body": "Refs #1305", "created_at": "2021-04-22T13:53:17Z", "updated_at": "2021-06-02T04:27:00Z", "closed_at": "2021-06-02T04:25:28Z", "merged_at": "2021-06-02T04:25:28Z", "merge_commit_sha": "0f41db1ba8a8a49a4adc1046a25ccf32790e863f", "assignee": null, "milestone": null, "draft": 0, "head": "115332ce76c0e867d9936406aaf4bcee6b1ef3cb", "base": "6ed9238178a56da5fb019f37fb1e1e15886be1d1", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1306", "merged_by": null, "auto_merge": null} {"id": 425531205, "node_id": "MDExOlB1bGxSZXF1ZXN0NDI1NTMxMjA1", "number": 783, "state": "closed", "locked": 0, "title": "Authentication: plugin hooks plus default --root auth mechanism", "user": {"value": 9599, "label": "simonw"}, "body": "See #699", "created_at": "2020-05-30T22:25:47Z", "updated_at": "2020-06-01T01:16:44Z", "closed_at": "2020-06-01T01:16:43Z", "merged_at": "2020-06-01T01:16:43Z", "merge_commit_sha": "57cf5139c552cb7feab9947daa949ca434cc0a66", "assignee": null, "milestone": null, "draft": 0, "head": "116a26ce2d4af26c928e361e1b24dd6a6bb14eca", "base": "c4fbe50676929b512940aab90de590a78ac5d7fc", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/783", "merged_by": null, "auto_merge": null} {"id": 512545364, "node_id": "MDExOlB1bGxSZXF1ZXN0NTEyNTQ1MzY0", "number": 1061, "state": "closed", "locked": 0, "title": ".blob output renderer", "user": {"value": 9599, "label": "simonw"}, "body": "- [x] Remove the `/-/...blob/...` route I added in #1040 in place of the new `.blob` renderer URLs\r\n- [x] Link to new `.blob` download links on the arbitrary query page (using `_blob_hash=...`) - plus tests for this\r\n\r\nCloses #1050, Closes #1051", "created_at": "2020-10-29T20:25:08Z", "updated_at": "2020-10-29T22:01:40Z", "closed_at": "2020-10-29T22:01:39Z", "merged_at": "2020-10-29T22:01:39Z", "merge_commit_sha": "78b3eeaad9189eb737014f53212082684f4bb0d4", "assignee": null, "milestone": {"value": 6026070, "label": "0.51"}, "draft": 0, "head": "1196d084de6a7a6f68c7705a6cc096bb8df132e3", "base": "d6f9ff71378c4eab34dad181c23cfc143a4aef2d", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1061", "merged_by": null, "auto_merge": null} {"id": 758334037, "node_id": "PR_kwDOBm6k_c4tM0JV", "number": 1489, "state": "closed", "locked": 0, "title": "Update pyyaml requirement from ~=5.3 to >=5.3,<7.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "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

5.4 (2021-01-19)

\n\n

5.3.1 (2020-03-18)

\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
", "created_at": "2021-10-14T13:09:33Z", "updated_at": "2021-10-14T18:10:43Z", "closed_at": "2021-10-14T18:10:42Z", "merged_at": "2021-10-14T18:10:42Z", "merge_commit_sha": "827fa823d1b919c445f3141174ecb7a82717d99c", "assignee": null, "milestone": null, "draft": 0, "head": "11c335c484e15ecbaf320fe88db797ff108e5f6a", "base": "b267b5775436577a91a9f9655143908aecff05da", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1489", "merged_by": null, "auto_merge": null} {"id": 406677205, "node_id": "MDExOlB1bGxSZXF1ZXN0NDA2Njc3MjA1", "number": 730, "state": "closed", "locked": 0, "title": "Update pytest-asyncio requirement from ~=0.10.0 to >=0.10,<0.12", "user": {"value": 27856297, "label": "dependabot-preview[bot]"}, "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- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\n\n\n
", "created_at": "2020-04-21T13:32:35Z", "updated_at": "2020-05-04T13:27:24Z", "closed_at": "2020-05-04T13:27:23Z", "merged_at": null, "merge_commit_sha": "460708c7107a7cf15971a9aa1040635f6bc1be6d", "assignee": null, "milestone": null, "draft": 0, "head": "11c67f82cdccc6e34cbff717e673451ac6172ef4", "base": "15e232180427e988174fdf88440c84b91d2d98d1", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/730", "merged_by": null, "auto_merge": null} {"id": 1179812620, "node_id": "PR_kwDODEm0Qs5GUoMM", "number": 69, "state": "open", "locked": 0, "title": "Archive: Import new tweets table name", "user": {"value": 26161409, "label": "sometimes-i-send-pull-requests"}, "body": "Given the code here, it seems like in the past this file was named \"tweet.js\". In recent exports, it's named \"tweets.js\". The archive importer needs to be modified to take this into account. Existing logic is reused for importing this table. (However, the resulting table name will be different, matching the different file name -- archive_tweets, rather than archive_tweet).", "created_at": "2022-12-28T23:32:44Z", "updated_at": "2022-12-28T23:32:44Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "1a8c02a8d349c8fd4074139a6a3eed552676bdf3", "assignee": null, "milestone": null, "draft": 0, "head": "11e8fa64ca30cebde047a4268e65f376c42e2b60", "base": "f09d611782a8372cfb002792dfa727325afb4db6", "author_association": "FIRST_TIME_CONTRIBUTOR", "repo": {"value": 206156866, "label": "twitter-to-sqlite"}, "url": "https://github.com/dogsheep/twitter-to-sqlite/pull/69", "merged_by": null, "auto_merge": null} {"id": 434055752, "node_id": "MDExOlB1bGxSZXF1ZXN0NDM0MDU1NzUy", "number": 844, "state": "closed", "locked": 0, "title": "Action to run tests and upload coverage report", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #843", "created_at": "2020-06-13T20:52:47Z", "updated_at": "2020-06-13T21:36:52Z", "closed_at": "2020-06-13T21:36:50Z", "merged_at": "2020-06-13T21:36:50Z", "merge_commit_sha": "cf7a2bdb404734910ec07abc7571351a2d934828", "assignee": null, "milestone": null, "draft": 0, "head": "1210d9f41841bdca450f85a2342cdb0ff339c1b4", "base": "80c18a18fc444b89cc12b73599d56e091f3a3c87", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/844", "merged_by": null, "auto_merge": null} {"id": 453890292, "node_id": "MDExOlB1bGxSZXF1ZXN0NDUzODkwMjky", "number": 901, "state": "closed", "locked": 0, "title": "Use None as a default arg", "user": {"value": 56323389, "label": "Alyetama"}, "body": "When passing a mutable value as a default argument in a function, the default argument is mutated anytime that value is mutated. This poses a bug risk. Instead, use None as a default and assign the mutable value inside the function.", "created_at": "2020-07-20T22:18:38Z", "updated_at": "2020-07-31T18:42:39Z", "closed_at": "2020-07-31T18:42:39Z", "merged_at": "2020-07-31T18:42:39Z", "merge_commit_sha": "2d7fa8b9058dfbf9c7c371cdeec115d32a177dc9", "assignee": null, "milestone": null, "draft": 0, "head": "1285f28d82d9ca97e7543bb87fc6ff462855debe", "base": "d9a5ef1c32a4390e398653ebfd570f8e1a03d93e", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/901", "merged_by": null, "auto_merge": null} {"id": 152631570, "node_id": "MDExOlB1bGxSZXF1ZXN0MTUyNjMxNTcw", "number": 94, "state": "closed", "locked": 0, "title": "Initial add simple prod ready Dockerfile refs #57", "user": {"value": 247192, "label": "macropin"}, "body": "Multi-stage build based off official python:3.6-slim\r\n\r\nExample usage:\r\n```\r\ndocker run --rm -t -i -p 9000:8001 -v $(pwd)/db:/db datasette datasette serve /db/chinook.db\r\n```", "created_at": "2017-11-14T22:09:09Z", "updated_at": "2017-11-15T03:08:04Z", "closed_at": "2017-11-15T03:08:04Z", "merged_at": "2017-11-15T03:08:04Z", "merge_commit_sha": "86755503d26b4a83c2ec59f08ec1b8de791fd954", "assignee": null, "milestone": null, "draft": 0, "head": "147195c2fdfa2b984d8f9fc1c6cab6634970a056", "base": "075d422c0a1c70259188dfbd940538c67419694a", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/94", "merged_by": null, "auto_merge": null} {"id": 152914480, "node_id": "MDExOlB1bGxSZXF1ZXN0MTUyOTE0NDgw", "number": 107, "state": "closed", "locked": 0, "title": "add support for ?field__isnull=1", "user": {"value": 3433657, "label": "raynae"}, "body": "Is this what you had in mind for [this issue](https://github.com/simonw/datasette/issues/64)?", "created_at": "2017-11-15T23:36:36Z", "updated_at": "2017-11-17T15:12:29Z", "closed_at": "2017-11-17T13:29:22Z", "merged_at": "2017-11-17T13:29:22Z", "merge_commit_sha": "ed2b3f25beac720f14869350baacc5f62b065194", "assignee": null, "milestone": null, "draft": 0, "head": "14d5bb572fadbd45973580bd9ad2a16c2bf12909", "base": "b7c4165346ee8b6a6fbd72d6ba2275a24a8a8ae3", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/107", "merged_by": null, "auto_merge": null} {"id": 602107935, "node_id": "MDExOlB1bGxSZXF1ZXN0NjAyMTA3OTM1", "number": 1279, "state": "closed", "locked": 0, "title": "Minor Docs Update. Added `--app` to fly install command.", "user": {"value": 1019791, "label": "koaning"}, "body": "Without this flag, there's an error locally. \r\n\r\n```\r\n> datasette publish fly bigmac.db\r\n\r\nUsage: datasette publish fly [OPTIONS] [FILES]...\r\nTry 'datasette publish fly --help' for help.\r\n\r\nError: Missing option '-a' / '--app'.\r\n```\r\n\r\nI also got an error message which later turned out to be because I hadn't added my credit card information yet to `fly`. I wasn't sure if I should add that mention to the docs here, or to submit a bug-report over at https://github.com/simonw/datasette-publish-fly. ", "created_at": "2021-03-27T16:58:08Z", "updated_at": "2021-03-29T00:11:55Z", "closed_at": "2021-03-29T00:11:55Z", "merged_at": "2021-03-29T00:11:55Z", "merge_commit_sha": "c96a3826cf50cb347f6a415b56d8105ba6d8dcb0", "assignee": null, "milestone": null, "draft": 0, "head": "14d8977e158d1d3193c6afb50aae482547ec9d8d", "base": "3fcfc8513465339ac5f055296cbb67f5262af02b", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1279", "merged_by": null, "auto_merge": null} {"id": 399166433, "node_id": "MDExOlB1bGxSZXF1ZXN0Mzk5MTY2NDMz", "number": 719, "state": "closed", "locked": 0, "title": "asgi: check raw_path is not None", "user": {"value": 193185, "label": "cldellow"}, "body": "The ASGI spec\r\n(https://asgi.readthedocs.io/en/latest/specs/www.html#http) seems to imply that `None` is a valid value, so we need to check the value itself, not just whether the key is present.\r\n\r\nIn particular, the [mangum](https://github.com/erm/mangum) adapter passes `None` for this key's value. This change permits mangum to be used to front datasette in Amazon API Gateway + AWS Lambda deployments.", "created_at": "2020-04-05T16:53:58Z", "updated_at": "2020-05-04T17:14:26Z", "closed_at": "2020-05-04T17:14:26Z", "merged_at": "2020-05-04T17:14:26Z", "merge_commit_sha": "dbd2d70b3819a7041bb36a527033d77c85683c05", "assignee": null, "milestone": null, "draft": 0, "head": "161f61d73800a605354b4ac44a3c989e19bbc77a", "base": "e0e7a0facfc935a835cd73c720bc46661462f0b1", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/719", "merged_by": null, "auto_merge": null} {"id": 297412464, "node_id": "MDExOlB1bGxSZXF1ZXN0Mjk3NDEyNDY0", "number": 38, "state": "closed", "locked": 0, "title": "table.update() method", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #35\r\n\r\nStill to do:\r\n\r\n- [x] Unit tests\r\n- [x] Switch to using `.get()`\r\n- [x] Better exceptions, plus unit tests for what happens if pk does not exist\r\n- [x] Documentation\r\n- [x] Ensure compound primary keys work properly\r\n- [x] `alter=True` support", "created_at": "2019-07-14T17:03:49Z", "updated_at": "2019-07-28T15:43:51Z", "closed_at": "2019-07-28T15:43:51Z", "merged_at": "2019-07-28T15:43:51Z", "merge_commit_sha": "0747dabb24b608e8524de4858ce50c60ba7e471b", "assignee": null, "milestone": null, "draft": 0, "head": "16d7008002b43cf47a973791da93e5cdd5913fc3", "base": "a6749cdf43229c4f7864c946496e9ac0141627d9", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/38", "merged_by": null, "auto_merge": null} {"id": 395258687, "node_id": "MDExOlB1bGxSZXF1ZXN0Mzk1MjU4Njg3", "number": 96, "state": "closed", "locked": 0, "title": "Add type conversion for Panda's Timestamp", "user": {"value": 32605365, "label": "b0b5h4rp13"}, "body": "Add type conversion for Panda's Timestamp, if Panda library is present in system\r\n(thanks for this project, I was about to do the same thing from scratch)", "created_at": "2020-03-29T14:13:09Z", "updated_at": "2020-03-31T04:40:49Z", "closed_at": "2020-03-31T04:40:48Z", "merged_at": "2020-03-31T04:40:48Z", "merge_commit_sha": "8ea626e5fcdc4c9e52f615c6347e68173805f8b4", "assignee": null, "milestone": null, "draft": 0, "head": "16ebbd2d494caabd0eeb502f8a944614b464bb12", "base": "22250a9c735077d6f365b73bf824e6c67b122c83", "author_association": "CONTRIBUTOR", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/96", "merged_by": null, "auto_merge": null} {"id": 424085264, "node_id": "MDExOlB1bGxSZXF1ZXN0NDI0MDg1MjY0", "number": 772, "state": "closed", "locked": 0, "title": "Test that plugin hooks are unit tested", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #771", "created_at": "2020-05-27T20:01:32Z", "updated_at": "2020-05-27T20:21:56Z", "closed_at": "2020-05-27T20:16:03Z", "merged_at": "2020-05-27T20:16:02Z", "merge_commit_sha": "da87e963bff24e47878a5bc2025c8bfc63d4bc93", "assignee": null, "milestone": {"value": 5471110, "label": "Datasette 0.43"}, "draft": 0, "head": "173b6947521f1c1b47a119f62f379bf4278c87c9", "base": "41a0cd7b6afe0397efbbf27ad822679fc574811a", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/772", "merged_by": null, "auto_merge": null} {"id": 643149320, "node_id": "MDExOlB1bGxSZXF1ZXN0NjQzMTQ5MzIw", "number": 1324, "state": "closed", "locked": 0, "title": "Update jinja2 requirement from <2.12.0,>=2.10.3 to >=2.10.3,<3.1.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "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.0.0

\n

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

\n\n

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

\n
\n
\n
\nChangelog\n

Sourced from jinja2's changelog.

\n
\n

Version 3.0.0

\n

Released 2021-05-11

\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\n\n
", "created_at": "2021-05-12T13:08:59Z", "updated_at": "2021-05-17T17:19:41Z", "closed_at": "2021-05-17T17:19:40Z", "merged_at": "2021-05-17T17:19:40Z", "merge_commit_sha": "9b3b7e280ca718254b4ca15d40864297146a85b3", "assignee": null, "milestone": null, "draft": 0, "head": "177456e64bbdc7a1ec7c58f2cacba932b261b3fb", "base": "1b697539f5b53cec3fe13c0f4ada13ba655c88c7", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1324", "merged_by": null, "auto_merge": null} {"id": 1454726308, "node_id": "PR_kwDOD079W85WtVyk", "number": 39, "state": "open", "locked": 0, "title": "Missing option in datasette instructions", "user": {"value": 319473, "label": "coldclimate"}, "body": "Gotta tell it where to look", "created_at": "2023-07-29T10:34:48Z", "updated_at": "2023-07-29T10:34:48Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "bd9c51b4e3e110122f921fc6ebf10b69d7fcbb7a", "assignee": null, "milestone": null, "draft": 0, "head": "17c0ddf5113d8587247d4736e1390fe07ec33b8c", "base": "325aa38cb23d0757bb1335ee2ea94a082475a66e", "author_association": "FIRST_TIME_CONTRIBUTOR", "repo": {"value": 256834907, "label": "dogsheep-photos"}, "url": "https://github.com/dogsheep/dogsheep-photos/pull/39", "merged_by": null, "auto_merge": null} {"id": 431478724, "node_id": "MDExOlB1bGxSZXF1ZXN0NDMxNDc4NzI0", "number": 819, "state": "closed", "locked": 0, "title": "register_routes() plugin hook", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #215", "created_at": "2020-06-09T01:20:44Z", "updated_at": "2020-06-09T03:12:08Z", "closed_at": "2020-06-09T03:12:07Z", "merged_at": "2020-06-09T03:12:07Z", "merge_commit_sha": "f5e79adf26d0daa3831e3fba022f1b749a9efdee", "assignee": null, "milestone": {"value": 5512395, "label": "Datasette 0.44"}, "draft": 0, "head": "18127f074efc1b0148d1098da063e51ccea7797c", "base": "647c5ff0f3e8140f40d7f41f0874ce4e1f4df65c", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/819", "merged_by": null, "auto_merge": null} {"id": 583407989, "node_id": "MDExOlB1bGxSZXF1ZXN0NTgzNDA3OTg5", "number": 244, "state": "closed", "locked": 0, "title": "Typo in upsert example", "user": {"value": 387669, "label": "j-e-d"}, "body": "Remove extra `[`", "created_at": "2021-03-02T23:14:14Z", "updated_at": "2021-05-19T02:58:21Z", "closed_at": "2021-05-19T02:58:21Z", "merged_at": "2021-05-19T02:58:21Z", "merge_commit_sha": "328211eaca1247cd6b33a2c0a54642f87866d85b", "assignee": null, "milestone": null, "draft": 0, "head": "1899200fa5a43f638573ea2c483df62819ba53b1", "base": "09c3386f55f766b135b6a1c00295646c4ae29bec", "author_association": "CONTRIBUTOR", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/244", "merged_by": null, "auto_merge": null} {"id": 1520248889, "node_id": "PR_kwDOBm6k_c5anSg5", "number": 2191, "state": "closed", "locked": 0, "title": "Move `permissions`, `allow` blocks, canned queries and more out of `metadata.yaml` and into `datasette.yaml`", "user": {"value": 15178711, "label": "asg017"}, "body": "The PR moves the following fields from `metadata.yaml` to `datasette.yaml`:\r\n\r\n```\r\npermissions\r\nallow\r\nallow_sql\r\nqueries\r\nextra_css_urls\r\nextra_js_urls\r\n```\r\n\r\nThis is a significant breaking change that users will need to upgrade their `metadata.yaml` files for. But the format/locations are similar to the previous version, so it shouldn't be too difficult to upgrade.\r\n\r\nOne note: I'm still working on the Configuration docs, specifically the \"reference\" section. Though it's pretty small, the rest of read to review", "created_at": "2023-09-18T21:21:16Z", "updated_at": "2023-10-12T16:16:38Z", "closed_at": "2023-10-12T16:16:38Z", "merged_at": "2023-10-12T16:16:38Z", "merge_commit_sha": "35deaabcb105903790d18710a26e77545f6852ce", "assignee": null, "milestone": null, "draft": 0, "head": "18b48f879b68d1e80e3adbae056710a6238b16bb", "base": "6ed7908580fa2ba9297c3225d85c56f8b08b9937", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/2191", "merged_by": null, "auto_merge": null} {"id": 339722790, "node_id": "MDExOlB1bGxSZXF1ZXN0MzM5NzIyNzkw", "number": 627, "state": "closed", "locked": 0, "title": "Support Python 3.8, stop supporting Python 3.5", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #622", "created_at": "2019-11-12T04:36:33Z", "updated_at": "2020-04-05T10:23:58Z", "closed_at": "2019-11-12T05:09:12Z", "merged_at": "2019-11-12T05:09:12Z", "merge_commit_sha": "cf7776d36fbacefa874cbd6e5fcdc9fff7661203", "assignee": null, "milestone": null, "draft": 0, "head": "18cc795b5c6ec9223a5cbc4f30b19710c17f7eaa", "base": "42ee3e16a9ba7cc513b8da944cc1609a5407cf42", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/627", "merged_by": null, "auto_merge": null} {"id": 370675007, "node_id": "MDExOlB1bGxSZXF1ZXN0MzcwNjc1MDA3", "number": 664, "state": "closed", "locked": 0, "title": "Datasette.render_template() method", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #577", "created_at": "2020-02-04T06:53:59Z", "updated_at": "2020-02-04T20:26:18Z", "closed_at": "2020-02-04T20:26:18Z", "merged_at": "2020-02-04T20:26:18Z", "merge_commit_sha": "70b915fb4bc214f9d064179f87671f8a378aa127", "assignee": null, "milestone": null, "draft": 0, "head": "19d4406f562aca291fef04363802093672620220", "base": "286ed286b68793532c2a38436a08343b45cfbc91", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/664", "merged_by": null, "auto_merge": null} {"id": 528997614, "node_id": "MDExOlB1bGxSZXF1ZXN0NTI4OTk3NjE0", "number": 1112, "state": "closed", "locked": 0, "title": "Fix --metadata doc usage", "user": {"value": 50527, "label": "jefftriplett"}, "body": "I stumbled on this while trying to figure out how to configure datasette-ripgrep via https://github.com/simonw/datasette-ripgrep/issues/15\r\n\r\nYou may not want to update the changelog (those are annoying) so I added two commits in case that's easier. ", "created_at": "2020-11-28T19:19:51Z", "updated_at": "2020-11-28T23:28:21Z", "closed_at": "2020-11-28T19:53:48Z", "merged_at": "2020-11-28T19:53:48Z", "merge_commit_sha": "bbde835a1fec01458e8d00929e7bab6d6a5ba948", "assignee": null, "milestone": {"value": 6055094, "label": "Datasette 0.52"}, "draft": 0, "head": "1a30fc259205df736daf068c57a0a6ae2c21ffa9", "base": "37d18a5bce08c9ee53c080f613bae84fc2ccc853", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1112", "merged_by": null, "auto_merge": null} {"id": 791153878, "node_id": "PR_kwDOCGYnMM4vKAzW", "number": 347, "state": "open", "locked": 0, "title": "Test against pysqlite3 running SQLite 3.37", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #346 and #344.", "created_at": "2021-11-29T23:17:57Z", "updated_at": "2021-12-11T01:02:19Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "f70a61e58ae62e53af74ab48d742bdc335131fbd", "assignee": null, "milestone": null, "draft": 0, "head": "1a7ef2fe2064ace01d5535fb771f941296fb642a", "base": "213a0ff177f23a35f3b235386366ff132eb879f1", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/347", "merged_by": null, "auto_merge": null} {"id": 196526861, "node_id": "MDExOlB1bGxSZXF1ZXN0MTk2NTI2ODYx", "number": 322, "state": "closed", "locked": 0, "title": "Feature/in operator", "user": {"value": 2691848, "label": "4e1e0603"}, "body": "", "created_at": "2018-06-21T17:41:51Z", "updated_at": "2018-06-21T17:45:25Z", "closed_at": "2018-06-21T17:45:25Z", "merged_at": null, "merge_commit_sha": "80b7bcefa1c07202779d98c9e2214f3ebad704e3", "assignee": null, "milestone": null, "draft": 0, "head": "1acc562a2f60a7289438df657db8fd6dd3a7391d", "base": "e7566cc59d4b02ef301054fd35fdde6c925a8e38", "author_association": "NONE", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/322", "merged_by": null, "auto_merge": null} {"id": 249680944, "node_id": "MDExOlB1bGxSZXF1ZXN0MjQ5NjgwOTQ0", "number": 9, "state": "closed", "locked": 0, "title": ":pencil: Updates my_database.py to my_database.db", "user": {"value": 50527, "label": "jefftriplett"}, "body": "I noticed that both `.py` and `.db` were used in the docs and assumed you'd prefer `.db`. ", "created_at": "2019-02-01T17:35:43Z", "updated_at": "2019-02-24T03:55:04Z", "closed_at": "2019-02-24T03:55:04Z", "merged_at": "2019-02-24T03:55:04Z", "merge_commit_sha": "c5068a0972651b3e359ebc2d6c1486b8b7d2c242", "assignee": null, "milestone": null, "draft": 0, "head": "1ad604fbbd3311f041357190796a3613c0c729d1", "base": "441c131db5cc68e197db19f0623ff8a96c90c3ff", "author_association": "CONTRIBUTOR", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/9", "merged_by": null, "auto_merge": null} {"id": 293962405, "node_id": "MDExOlB1bGxSZXF1ZXN0MjkzOTYyNDA1", "number": 533, "state": "closed", "locked": 0, "title": "Support cleaner custom templates for rows and tables, closes #521", "user": {"value": 9599, "label": "simonw"}, "body": "- [x] Rename `_rows_and_columns.html` to `_table.html`\r\n- [x] Unit test\r\n- [x] Documentation", "created_at": "2019-07-03T00:40:18Z", "updated_at": "2019-07-03T03:23:06Z", "closed_at": "2019-07-03T03:23:06Z", "merged_at": "2019-07-03T03:23:06Z", "merge_commit_sha": "b9ede4c1898616512b5d204f9c941deff473cbe4", "assignee": null, "milestone": null, "draft": 0, "head": "1add905532b7bc4f681318b8f22b9b74cca2b2a0", "base": "76882830548e16905348ee75acb0044cb8e1fd20", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/533", "merged_by": null, "auto_merge": null} {"id": 662557240, "node_id": "MDExOlB1bGxSZXF1ZXN0NjYyNTU3MjQw", "number": 1357, "state": "closed", "locked": 0, "title": "Make custom pages compatible with base_url setting", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #1238.", "created_at": "2021-06-05T18:54:39Z", "updated_at": "2021-06-05T18:59:54Z", "closed_at": "2021-06-05T18:59:54Z", "merged_at": "2021-06-05T18:59:54Z", "merge_commit_sha": "a63412152518581c6a3d4e142b937e27dabdbfdb", "assignee": null, "milestone": null, "draft": 0, "head": "1b27643d7bd192e1d2cc52e36ada0021c3f76bb8", "base": "6e9b07be92905011211d8df7a872fb7c1f2737b2", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1357", "merged_by": null, "auto_merge": null} {"id": 1000800283, "node_id": "PR_kwDOCGYnMM47pwAb", "number": 455, "state": "closed", "locked": 0, "title": "in extract code, check equality with IS instead of = for nulls", "user": {"value": 536941, "label": "fgregg"}, "body": "sqlite \"IS\" is equivalent to SQL \"IS NOT DISTINCT FROM\"\r\n\r\ncloses #423", "created_at": "2022-07-19T13:40:25Z", "updated_at": "2022-08-27T14:45:03Z", "closed_at": "2022-08-27T14:45:03Z", "merged_at": "2022-08-27T14:45:03Z", "merge_commit_sha": "c5f8a2eb1a81a18b52825cc649112f71fe419b12", "assignee": null, "milestone": null, "draft": 0, "head": "1b35a92e3ede76f0f29f6f8dcd899f44b2abbb02", "base": "855bce8c3823718def13e0b8928c58bf857e41b2", "author_association": "CONTRIBUTOR", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/455", "merged_by": null, "auto_merge": null} {"id": 1488154809, "node_id": "PR_kwDOBm6k_c5Ys3C5", "number": 2154, "state": "closed", "locked": 0, "title": "Cascade for restricted token view-table/view-database/view-instance operations", "user": {"value": 9599, "label": "simonw"}, "body": "Refs:\r\n- #2102\r\n\r\nAlso includes a prototype implementation of `--actor option` which I'm using for testing this, from:\r\n- #2153\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--2154.org.readthedocs.build/en/2154/\n\r\n", "created_at": "2023-08-24T14:24:23Z", "updated_at": "2023-08-29T16:32:35Z", "closed_at": "2023-08-29T16:32:34Z", "merged_at": "2023-08-29T16:32:34Z", "merge_commit_sha": "50da908213a0fc405ecd7a40090dfea7a2e7395c", "assignee": null, "milestone": null, "draft": 0, "head": "1b38cba913b0a3515b4b1649276dc1ff973680bb", "base": "2e2825869fc2655b5fcadc743f6f9dec7a49bc65", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/2154", "merged_by": null, "auto_merge": null} {"id": 275558612, "node_id": "MDExOlB1bGxSZXF1ZXN0Mjc1NTU4NjEy", "number": 445, "state": "closed", "locked": 0, "title": "Extract facet code out into a new plugin hook, closes #427", "user": {"value": 9599, "label": "simonw"}, "body": "Datasette previously only supported one type of faceting: exact column value counting.\r\n\r\nWith this change, faceting logic is extracted out into one or more separate classes which can implement other patterns of faceting - this is discussed in #427, but potential upcoming facet types include facet-by-date, facet-by-JSON-array, facet-by-many-2-many and more.\r\n\r\nA new plugin hook, register_facet_classes, can be used by plugins to add in additional facet classes.\r\n\r\nEach class must implement two methods: suggest(), which scans columns in the table to decide if they might be worth suggesting for faceting, and facet_results(), which executes the facet operation and returns results ready to be displayed in the UI.", "created_at": "2019-05-03T00:02:41Z", "updated_at": "2019-05-03T18:17:18Z", "closed_at": "2019-05-03T00:11:27Z", "merged_at": "2019-05-03T00:11:27Z", "merge_commit_sha": "ea66c45df96479ef66a89caa71fff1a97a862646", "assignee": null, "milestone": null, "draft": 0, "head": "1b47d4d8736627c260eb4e8303e552b0e9620a01", "base": "efc93b8ab5a21e3802f75f08d5e41409f5684b5d", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/445", "merged_by": null, "auto_merge": null} {"id": 770511531, "node_id": "PR_kwDOBm6k_c4t7RKr", "number": 1500, "state": "closed", "locked": 0, "title": "Bump black from 21.9b0 to 21.10b0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "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

Blackd

\n\n

Black-Primer

\n\n

Integrations

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

Sourced from black's changelog.

\n
\n

21.10b0

\n

Black

\n\n

Blackd

\n\n

Black-Primer

\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=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
", "created_at": "2021-11-01T13:11:23Z", "updated_at": "2021-11-17T13:14:00Z", "closed_at": "2021-11-17T13:13:58Z", "merged_at": null, "merge_commit_sha": "bc0c2637d3dabbbf55a1cb86df620683a2486ae5", "assignee": null, "milestone": null, "draft": 0, "head": "1b7f679b0d732162e8841c63fd4b8b0682627c10", "base": "2c31d1cd9cd3b63458ccbe391866499fa3f44978", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1500", "merged_by": null, "auto_merge": null} {"id": 475665984, "node_id": "MDExOlB1bGxSZXF1ZXN0NDc1NjY1OTg0", "number": 142, "state": "closed", "locked": 0, "title": "insert_all(..., alter=True) should work for new columns introduced after the first 100 records", "user": {"value": 96218, "label": "simonwiles"}, "body": "Closes #139.", "created_at": "2020-08-28T22:22:57Z", "updated_at": "2020-08-30T07:28:23Z", "closed_at": "2020-08-28T22:30:14Z", "merged_at": "2020-08-28T22:30:14Z", "merge_commit_sha": "947bb7626fd1763608a470adf9cf5f156ef003e9", "assignee": null, "milestone": null, "draft": 0, "head": "1b992c7c1e5855caa87c7939efad287052f446f3", "base": "ea87c2b943fdd162c42a900ac0aea5ecc2f4b9d9", "author_association": "CONTRIBUTOR", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/142", "merged_by": null, "auto_merge": null} {"id": 687304242, "node_id": "MDExOlB1bGxSZXF1ZXN0Njg3MzA0MjQy", "number": 1393, "state": "closed", "locked": 0, "title": "Update deploying.rst", "user": {"value": 80737, "label": "aslakr"}, "body": "Example on how to use Unix domain socket option on Apache. Not testet.\r\n\r\n(Usually I would have used [`ProxyPassReverse`](https://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypassreverse) in combination with `ProxyPass` , i.e.\r\n\r\n```apache\r\nProxyPass /my-datasette/ http://127.0.0.1:8009/my-datasette/\r\nProxyPassReverse /my-datasette/ http://127.0.0.1:8009/my-datasette/\r\n```\r\n\r\nand\r\n\r\n```apache\r\nProxyPass /my-datasette/ unix:/tmp/datasette.sock|http://localhost/my-datasette/\r\nProxyPassReverse /my-datasette/ unix:/tmp/datasette.sock|http://localhost/my-datasette/\r\n```\r\n)", "created_at": "2021-07-11T09:32:16Z", "updated_at": "2021-07-13T18:32:49Z", "closed_at": "2021-07-13T18:32:49Z", "merged_at": "2021-07-13T18:32:49Z", "merge_commit_sha": "d71cac498138ddd86f18607b9043e70286ea884a", "assignee": null, "milestone": null, "draft": 0, "head": "1bbb577e9e10e0225ab885d72defcbf6517cc096", "base": "f83c84fd51d144036924ae77d99f12b0a69e7e6f", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1393", "merged_by": null, "auto_merge": null} {"id": 161982711, "node_id": "MDExOlB1bGxSZXF1ZXN0MTYxOTgyNzEx", "number": 178, "state": "closed", "locked": 0, "title": "If metadata exists, add it to heroku launch command", "user": {"value": 82988, "label": "psychemedia"}, "body": "The heroku build does seem to make use of any provided `metadata.json` file.\r\n\r\nAdd the `--metadata` switch to the Heroku web launch command if a `metadata.json` file is available.\r\n\r\nAddresses: https://github.com/simonw/datasette/issues/177", "created_at": "2018-01-09T21:42:21Z", "updated_at": "2018-01-15T09:42:46Z", "closed_at": "2018-01-14T21:05:16Z", "merged_at": "2018-01-14T21:05:16Z", "merge_commit_sha": "3a56a2cd7eea5d477d5d936b01098be5cba0d98e", "assignee": null, "milestone": null, "draft": 0, "head": "1bc9ed98c4f4fd91b70560ac8f507a2fddbd8317", "base": "306e1c6ac4f00cc25d676a6ee660938f5b27427c", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/178", "merged_by": null, "auto_merge": null} {"id": 840249513, "node_id": "PR_kwDOBm6k_c4yFTCp", "number": 1629, "state": "closed", "locked": 0, "title": "Update pytest requirement from <6.3.0,>=5.2.2 to >=5.2.2,<7.1.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "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

Bug Fixes

\n\n

Improved Documentation

\n\n

Trivial/Internal Changes

\n\n

pytest 7.0.0rc1 (2021-12-06)

\n

Breaking Changes

\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
", "created_at": "2022-02-04T13:14:10Z", "updated_at": "2022-03-06T01:30:06Z", "closed_at": "2022-03-06T01:30:06Z", "merged_at": "2022-03-06T01:30:06Z", "merge_commit_sha": "b21839dd1a005f6269c4e9a9f763195fe7aa9c86", "assignee": null, "milestone": null, "draft": 0, "head": "1c0d84878638a61bfbb7e146567f17fd8a9b21e9", "base": "1af1041f91a9b91b321078d354132d1df5204660", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1629", "merged_by": null, "auto_merge": null} {"id": 300377599, "node_id": "MDExOlB1bGxSZXF1ZXN0MzAwMzc3NTk5", "number": 47, "state": "closed", "locked": 0, "title": "extracts= table parameter", "user": {"value": 9599, "label": "simonw"}, "body": "Still needs docs. Refs #46", "created_at": "2019-07-23T16:30:29Z", "updated_at": "2019-07-23T17:00:43Z", "closed_at": "2019-07-23T17:00:43Z", "merged_at": "2019-07-23T17:00:43Z", "merge_commit_sha": "941d281aee6eac20ad64b505511da7e47f697700", "assignee": null, "milestone": null, "draft": 0, "head": "1c9d08f75a48b2a3770f2a880462dc8b195289b7", "base": "e22cfcd953f967f6e9551b3a048d7c40726f349b", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/47", "merged_by": null, "auto_merge": null} {"id": 964640654, "node_id": "PR_kwDOBm6k_c45fz-O", "number": 1757, "state": "open", "locked": 0, "title": "feat: add a wildcard for _json columns", "user": {"value": 163156, "label": "ytjohn"}, "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.", "created_at": "2022-06-11T01:01:17Z", "updated_at": "2022-09-06T00:51:21Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "f302b919cb78f1e353fc14cb449cab4a93dcedc6", "assignee": null, "milestone": null, "draft": 0, "head": "1cdcd8894ce2bb76cf29f8ffcdadedbb6fa0dac1", "base": "2e9751672d4fe329b3c359d5b7b1992283185820", "author_association": "FIRST_TIME_CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1757", "merged_by": null, "auto_merge": null} {"id": 801798514, "node_id": "PR_kwDOBm6k_c4vynly", "number": 1554, "state": "closed", "locked": 0, "title": "TableView refactor", "user": {"value": 9599, "label": "simonw"}, "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", "created_at": "2021-12-13T23:16:04Z", "updated_at": "2021-12-20T23:52:11Z", "closed_at": "2021-12-20T23:52:04Z", "merged_at": null, "merge_commit_sha": "a68545f9a4c3b3a68259be5c03abfc9ad7710875", "assignee": null, "milestone": null, "draft": 0, "head": "1d08b46412410837f987c606b2307a121fa2641a", "base": "a6ff123de5464806441f6a6f95145c9a83b7f20b", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1554", "merged_by": null, "auto_merge": null} {"id": 1182593611, "node_id": "PR_kwDOBm6k_c5GfPJL", "number": 1974, "state": "closed", "locked": 0, "title": "Bump sphinx from 5.3.0 to 6.0.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "body": "Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 5.3.0 to 6.0.0.\n
\nRelease notes\n

Sourced from sphinx's releases.

\n
\n

v6.0.0

\n

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

\n

v6.0.0b2

\n

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

\n

v6.0.0b1

\n

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

\n
\n
\n
\nChangelog\n

Sourced from sphinx's changelog.

\n
\n

Release 6.0.0 (released Dec 29, 2022)

\n

Dependencies

\n
    \n
  • #10468: Drop Python 3.6 support
  • \n
  • #10470: Drop Python 3.7, Docutils 0.14, Docutils 0.15, Docutils 0.16, and\nDocutils 0.17 support. Patch by Adam Turner
  • \n
\n

Incompatible changes

\n
    \n
  • \n

    #7405: Removed the jQuery and underscore.js JavaScript frameworks.

    \n

    These frameworks are no longer be automatically injected into themes from\nSphinx 6.0. If you develop a theme or extension that uses the\njQuery, $, or $u global objects, you need to update your\nJavaScript to modern standards, or use the mitigation below.

    \n

    The first option is to use the sphinxcontrib.jquery_ extension, which has been\ndeveloped by the Sphinx team and contributors. To use this, add\nsphinxcontrib.jquery to the extensions list in conf.py, or call\napp.setup_extension("sphinxcontrib.jquery") if you develop a Sphinx theme\nor extension.

    \n

    The second option is to manually ensure that the frameworks are present.\nTo re-add jQuery and underscore.js, you will need to copy jquery.js and\nunderscore.js from the Sphinx repository_ to your static directory,\nand add the following to your layout.html:

    \n

    .. code-block:: html+jinja

    \n

    {%- block scripts %}\n\n\n{{ super() }}\n{%- endblock %}

    \n

    .. _sphinxcontrib.jquery: https://github.com/sphinx-contrib/jquery/

    \n

    Patch by Adam Turner.

    \n
  • \n
  • \n

    #10471, #10565: Removed deprecated APIs scheduled for removal in Sphinx 6.0. See\n:ref:dev-deprecated-apis for details. Patch by Adam Turner.

    \n
  • \n
  • \n

    #10901: C Domain: Remove support for parsing pre-v3 style type directives and\nroles. Also remove associated configuration variables c_allow_pre_v3 and\nc_warn_on_allowed_pre_v3. Patch by Adam Turner.

    \n
  • \n
\n

Features added

\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=sphinx&package-manager=pip&previous-version=5.3.0&new-version=6.0.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--1974.org.readthedocs.build/en/1974/\n\r\n", "created_at": "2023-01-02T13:04:26Z", "updated_at": "2023-01-05T13:02:42Z", "closed_at": "2023-01-05T13:02:40Z", "merged_at": null, "merge_commit_sha": "302502126c106d20af29005bbd3bc7e86ca69052", "assignee": null, "milestone": null, "draft": 0, "head": "1e213a39f9582f881c626888d704dd3f196f6ae7", "base": "572bdb5b8095bbdc5ec2aa95400055e49ea028cb", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1974", "merged_by": null, "auto_merge": null} {"id": 1215742203, "node_id": "PR_kwDOBm6k_c5IdsD7", "number": 2003, "state": "open", "locked": 0, "title": "Show referring tables and rows when the referring foreign key is compound", "user": {"value": 536941, "label": "fgregg"}, "body": "sqlite foreign keys can be compound, but that is not as well supported by datasette as single column foreign keys.\r\n\r\nin particular, \r\n\r\n1. in a table view, there is not a link from the row to the referenced row if the foreign key is compound\r\n2. in a row view, there is no listing of tables and rows that refer to the focal row if those referencing foreign keys are compound.\r\n\r\nBoth of these issues are discussed in #1099. \r\n\r\nThis PR only fixes the second one, because it's not clear what the right UX is for the first issue.\r\n\r\n![Screenshot 2023-01-24 at 19-47-40 nlrb bargaining_unit](https://user-images.githubusercontent.com/536941/214454749-d53deead-4151-4329-a5d4-8a7a454de7d3.png)\r\n\r\nSome things that might not be desirable about this approach.\r\n\r\n1. it changes the external API, by changing `column` => `columns` and `other_column` => `other_columns` (see inline comment for more discussion.\r\n2. There are various places where the plural foreign keys have to be checked for length and discarded or transformed to singular. \r\n", "created_at": "2023-01-24T21:31:31Z", "updated_at": "2023-01-25T18:44:42Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "fb3abeceb2785a582d2c120c7c1bf7dc3cd1de05", "assignee": null, "milestone": null, "draft": 0, "head": "1e5b42f9d6490926300953837cbaa571ef81d772", "base": "e4ebef082de90db4e1b8527abc0d582b7ae0bc9d", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/2003", "merged_by": null, "auto_merge": null} {"id": 415286105, "node_id": "MDExOlB1bGxSZXF1ZXN0NDE1Mjg2MTA1", "number": 763, "state": "closed", "locked": 0, "title": "Documentation + improvements for db.execute() and Results class", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #685\r\n\r\nStill TODO:\r\n\r\n- [x] Implement `results.first()`\r\n- [x] Implement `results.single_value()`\r\n- [x] Unit tests for the above\r\n", "created_at": "2020-05-08T15:16:02Z", "updated_at": "2020-06-11T16:05:48Z", "closed_at": "2020-05-08T16:05:46Z", "merged_at": "2020-05-08T16:05:46Z", "merge_commit_sha": "4433306c1855ad69840cc76cbd41086137572be2", "assignee": null, "milestone": null, "draft": 0, "head": "1ea62c77221d07cd121367f1c6b620f8bde0716a", "base": "69e3a855dd7e5a77409d70b18c45ae3c1a145a75", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/763", "merged_by": null, "auto_merge": null} {"id": 1072698114, "node_id": "PR_kwDOBm6k_c4_8BMC", "number": 1827, "state": "closed", "locked": 0, "title": "Bump furo from 2022.9.15 to 2022.9.29", "user": {"value": 49699333, "label": "dependabot[bot]"}, "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
  • Add ability to set arbitrary URLs for edit button.
  • \n
  • Add support for aligning text in MyST-parser generated tables.
  • \n
\n

2022.09.15 -- Pragmatic Pistachio

\n
    \n
  • Add a minimum version constraint on pygments.
  • \n
  • Add an explicit dependency on sass.
  • \n
  • Change right sidebar title from "Contents" to "On this page".
  • \n
  • Correctly position sidebars on small screens.
  • \n
  • Correctly select only Furo's own svg in related pages nav.
  • \n
  • Make numpy-style documentation headers consistent.
  • \n
  • Retitle the reference section.
  • \n
  • Update npm dependencies.
  • \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
\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", "created_at": "2022-09-30T13:15:35Z", "updated_at": "2022-09-30T17:55:42Z", "closed_at": "2022-09-30T17:55:41Z", "merged_at": "2022-09-30T17:55:41Z", "merge_commit_sha": "c92c4318e9892101f75fa158410c0a12c1d80b6e", "assignee": null, "milestone": null, "draft": 0, "head": "1f0c557ef96d3e2e7a41598af8f9dece2d3fbcfc", "base": "34defdc10aa293294ca01cfab70780755447e1d7", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1827", "merged_by": null, "auto_merge": null} {"id": 1504920193, "node_id": "PR_kwDOCGYnMM5Zs0KB", "number": 591, "state": "closed", "locked": 0, "title": "Test against Python 3.12 preview", "user": {"value": 9599, "label": "simonw"}, "body": "https://dev.to/hugovk/help-test-python-312-beta-1508/\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://sqlite-utils--591.org.readthedocs.build/en/591/\n\r\n", "created_at": "2023-09-06T16:10:00Z", "updated_at": "2023-11-04T00:58:03Z", "closed_at": "2023-11-04T00:58:02Z", "merged_at": null, "merge_commit_sha": "ac0db3c705355178bd5a337b8dd74df141b12c7a", "assignee": null, "milestone": null, "draft": 0, "head": "1f14df1de4a214b12abfba6edd61a4bfa0b8473e", "base": "347fdc865e91b8d3410f49a5c9d5b499fbb594c1", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/591", "merged_by": null, "auto_merge": null} {"id": 181654839, "node_id": "MDExOlB1bGxSZXF1ZXN0MTgxNjU0ODM5", "number": 208, "state": "closed", "locked": 0, "title": "Return HTTP 405 on InvalidUsage rather than 500", "user": {"value": 45057, "label": "russss"}, "body": "This also stops it filling up the logs. This happens for HEAD requests at the moment - which perhaps should be handled better, but that's a different issue.", "created_at": "2018-04-14T16:12:50Z", "updated_at": "2018-04-14T18:00:39Z", "closed_at": "2018-04-14T18:00:39Z", "merged_at": "2018-04-14T18:00:39Z", "merge_commit_sha": "efbb4e83374a2c795e436c72fa79f70da72309b8", "assignee": null, "milestone": null, "draft": 0, "head": "20e5fcf827046adf76968d0e58f47e0b7d9271c3", "base": "8d394586f55bc4b8ab70476968d08fb6ec8339e5", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/208", "merged_by": null, "auto_merge": null} {"id": 624635440, "node_id": "MDExOlB1bGxSZXF1ZXN0NjI0NjM1NDQw", "number": 1309, "state": "closed", "locked": 0, "title": "Bump black from 20.8b1 to 21.4b0", "user": {"value": 27856297, "label": "dependabot-preview[bot]"}, "body": "Bumps [black](https://github.com/psf/black) from 20.8b1 to 21.4b0.\n
\nRelease notes\n

Sourced from black's releases.

\n
\n

21.4b0

\n

Black

\n
    \n
  • \n

    Fixed a rare but annoying formatting instability created by the combination of\noptional trailing commas inserted by Black and optional parentheses looking at\npre-existing "magic" trailing commas. This fixes issue #1629 and all of its many many\nduplicates. (#2126)

    \n
  • \n
  • \n

    Black now processes one-line docstrings by stripping leading and trailing spaces,\nand adding a padding space when needed to break up """". (#1740)

    \n
  • \n
  • \n

    Black now cleans up leading non-breaking spaces in comments (#2092)

    \n
  • \n
  • \n

    Black now respects --skip-string-normalization when normalizing multiline\ndocstring quotes (#1637)

    \n
  • \n
  • \n

    Black no longer removes all empty lines between non-function code and decorators\nwhen formatting typing stubs. Now Black enforces a single empty line. (#1646)

    \n
  • \n
  • \n

    Black no longer adds an incorrect space after a parenthesized assignment expression\nin if/while statements (#1655)

    \n
  • \n
  • \n

    Added --skip-magic-trailing-comma / -C to avoid using trailing commas as a reason\nto split lines (#1824)

    \n
  • \n
  • \n

    fixed a crash when PWD=/ on POSIX (#1631)

    \n
  • \n
  • \n

    fixed "I/O operation on closed file" when using --diff (#1664)

    \n
  • \n
  • \n

    Prevent coloured diff output being interleaved with multiple files (#1673)

    \n
  • \n
  • \n

    Added support for PEP 614 relaxed decorator syntax on python 3.9 (#1711)

    \n
  • \n
  • \n

    Added parsing support for unparenthesized tuples and yield expressions in annotated\nassignments (#1835)

    \n
  • \n
  • \n

    use lowercase hex strings (#1692)

    \n
  • \n
  • \n

    added --extend-exclude argument (PR #2005)

    \n
  • \n
  • \n

    speed up caching by avoiding pathlib (#1950)

    \n
  • \n
  • \n

    --diff correctly indicates when a file doesn't end in a newline (#1662)

    \n
  • \n
  • \n

    Added --stdin-filename argument to allow stdin to respect --force-exclude rules\n(#1780)

    \n
  • \n
  • \n

    Lines ending with fmt: skip will now be not formatted (#1800)

    \n
  • \n
  • \n

    PR #2053: Black no longer relies on typed-ast for Python 3.8 and higher

    \n
  • \n
\n\n
\n

... (truncated)

\n
\n
\nChangelog\n

Sourced from black's changelog.

\n
\n

21.4b0

\n

Black

\n
    \n
  • \n

    Fixed a rare but annoying formatting instability created by the combination of\noptional trailing commas inserted by Black and optional parentheses looking at\npre-existing "magic" trailing commas. This fixes issue #1629 and all of its many many\nduplicates. (#2126)

    \n
  • \n
  • \n

    Black now processes one-line docstrings by stripping leading and trailing spaces,\nand adding a padding space when needed to break up """". (#1740)

    \n
  • \n
  • \n

    Black now cleans up leading non-breaking spaces in comments (#2092)

    \n
  • \n
  • \n

    Black now respects --skip-string-normalization when normalizing multiline\ndocstring quotes (#1637)

    \n
  • \n
  • \n

    Black no longer removes all empty lines between non-function code and decorators\nwhen formatting typing stubs. Now Black enforces a single empty line. (#1646)

    \n
  • \n
  • \n

    Black no longer adds an incorrect space after a parenthesized assignment expression\nin if/while statements (#1655)

    \n
  • \n
  • \n

    Added --skip-magic-trailing-comma / -C to avoid using trailing commas as a reason\nto split lines (#1824)

    \n
  • \n
  • \n

    fixed a crash when PWD=/ on POSIX (#1631)

    \n
  • \n
  • \n

    fixed "I/O operation on closed file" when using --diff (#1664)

    \n
  • \n
  • \n

    Prevent coloured diff output being interleaved with multiple files (#1673)

    \n
  • \n
  • \n

    Added support for PEP 614 relaxed decorator syntax on python 3.9 (#1711)

    \n
  • \n
  • \n

    Added parsing support for unparenthesized tuples and yield expressions in annotated\nassignments (#1835)

    \n
  • \n
  • \n

    added --extend-exclude argument (PR #2005)

    \n
  • \n
  • \n

    speed up caching by avoiding pathlib (#1950)

    \n
  • \n
  • \n

    --diff correctly indicates when a file doesn't end in a newline (#1662)

    \n
  • \n
  • \n

    Added --stdin-filename argument to allow stdin to respect --force-exclude rules\n(#1780)

    \n
  • \n
  • \n

    Lines ending with fmt: skip will now be not formatted (#1800)

    \n
  • \n
  • \n

    PR #2053: Black no longer relies on typed-ast for Python 3.8 and higher

    \n
  • \n
\n\n
\n

... (truncated)

\n
\n
\nCommits\n\n
\n
\n\n\n[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=black&package-manager=pip&previous-version=20.8b1&new-version=21.4b0)](https://dependabot.com/compatibility-score/?dependency-name=black&package-manager=pip&previous-version=20.8b1&new-version=21.4b0)\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- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\n\n\n
", "created_at": "2021-04-27T20:28:11Z", "updated_at": "2021-04-28T18:26:06Z", "closed_at": "2021-04-28T18:26:04Z", "merged_at": null, "merge_commit_sha": "1220c60d8a6bb8e621543ef78d669a2bccc2a3c8", "assignee": null, "milestone": null, "draft": 0, "head": "20fc3fe2797b81a23cd464c1450d13086d53ea7f", "base": "a4bb2abce0764d49d255e5379f9e9c70981834ca", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1309", "merged_by": null, "auto_merge": null} {"id": 1358321208, "node_id": "PR_kwDOCGYnMM5Q9lY4", "number": 553, "state": "closed", "locked": 0, "title": "Reformatted CLI examples in docs", "user": {"value": 9599, "label": "simonw"}, "body": "Refs:\r\n- #551\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://sqlite-utils--553.org.readthedocs.build/en/553/\n\r\n", "created_at": "2023-05-21T20:44:34Z", "updated_at": "2023-05-21T20:57:27Z", "closed_at": "2023-05-21T20:57:23Z", "merged_at": "2023-05-21T20:57:22Z", "merge_commit_sha": "d8fe1b0d899faaaa3d4714a39328f4c24932278f", "assignee": null, "milestone": null, "draft": 0, "head": "21036a5084a2c846a05feb6bced3111d849bbe3c", "base": "e240133b11588d31dc22c632f7a7ca636c72978d", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/553", "merged_by": null, "auto_merge": null} {"id": 466410755, "node_id": "MDExOlB1bGxSZXF1ZXN0NDY2NDEwNzU1", "number": 927, "state": "closed", "locked": 0, "title": "'datasette --get' option, refs #926", "user": {"value": 9599, "label": "simonw"}, "body": "Refs #926, #898", "created_at": "2020-08-11T23:31:52Z", "updated_at": "2020-08-12T00:24:42Z", "closed_at": "2020-08-12T00:24:41Z", "merged_at": "2020-08-12T00:24:41Z", "merge_commit_sha": "e139a7619f63d45ca2ff1ee108b933e17b5675b3", "assignee": null, "milestone": null, "draft": 0, "head": "2111da01a03cfc62303b6a4b59ea9f96d22c0f78", "base": "83eda049af3f38d4289118d3576f96b2535084b1", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/927", "merged_by": null, "auto_merge": null} {"id": 811088967, "node_id": "PR_kwDOBm6k_c4wWDxH", "number": 1582, "state": "closed", "locked": 0, "title": "don't set far expiry if hash is '000'", "user": {"value": 536941, "label": "fgregg"}, "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.", "created_at": "2021-12-28T18:16:13Z", "updated_at": "2022-03-24T04:07:58Z", "closed_at": "2022-03-24T04:07:58Z", "merged_at": null, "merge_commit_sha": "e7249b52558b4ddcd92e68a13bd02fb54a2b92f8", "assignee": null, "milestone": null, "draft": 0, "head": "216f3b32b88d85b33e45937ed89ac919d82c23b4", "base": "8c401ee0f054de2f568c3a8302c9223555146407", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1582", "merged_by": null, "auto_merge": null} {"id": 1080343782, "node_id": "PR_kwDOBm6k_c5AZLzm", "number": 1839, "state": "closed", "locked": 0, "title": "Bump black from 22.8.0 to 22.10.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "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
  • Runtime support for Python 3.6 has been removed. Formatting 3.6 code will still be\nsupported until further notice.
  • \n
\n

Stable style

\n
    \n
  • Fix a crash when # fmt: on is used on a different block level than # fmt: off\n(#3281)
  • \n
\n

Preview style

\n
    \n
  • Fix a crash when formatting some dicts with parenthesis-wrapped long string keys\n(#3262)
  • \n
\n

Configuration

\n
    \n
  • .ipynb_checkpoints directories are now excluded by default (#3293)
  • \n
  • Add --skip-source-first-line / -x option to ignore the first line of source code\nwhile formatting (#3299)
  • \n
\n

Packaging

\n
    \n
  • Executables made with PyInstaller will no longer crash when formatting several files\nat once on macOS. Native x86-64 executables for macOS are available once again.\n(#3275)
  • \n
  • Hatchling is now used as the build backend. This will not have any effect for users\nwho install Black with its wheels from PyPI. (#3233)
  • \n
  • Faster compiled wheels are now available for CPython 3.11 (#3276)
  • \n
\n

Blackd

\n
    \n
  • Windows style (CRLF) newlines will be preserved (#3257).
  • \n
\n

Integrations

\n
    \n
  • Vim plugin: add flag (g:black_preview) to enable/disable the preview style (#3246)
  • \n
  • Update GitHub Action to support formatting of Jupyter Notebook files via a jupyter\noption (#3282)
  • \n
  • Update GitHub Action to support use of version specifiers (e.g. <23) for Black\nversion (#3265)
  • \n
\n
\n
\n
\nChangelog\n

Sourced from black's changelog.

\n
\n

22.10.0

\n

Highlights

\n
    \n
  • Runtime support for Python 3.6 has been removed. Formatting 3.6 code will still be\nsupported until further notice.
  • \n
\n

Stable style

\n
    \n
  • Fix a crash when # fmt: on is used on a different block level than # fmt: off\n(#3281)
  • \n
\n

Preview style

\n
    \n
  • Fix a crash when formatting some dicts with parenthesis-wrapped long string keys\n(#3262)
  • \n
\n

Configuration

\n
    \n
  • .ipynb_checkpoints directories are now excluded by default (#3293)
  • \n
  • Add --skip-source-first-line / -x option to ignore the first line of source code\nwhile formatting (#3299)
  • \n
\n

Packaging

\n
    \n
  • Executables made with PyInstaller will no longer crash when formatting several files\nat once on macOS. Native x86-64 executables for macOS are available once again.\n(#3275)
  • \n
  • Hatchling is now used as the build backend. This will not have any effect for users\nwho install Black with its wheels from PyPI. (#3233)
  • \n
  • Faster compiled wheels are now available for CPython 3.11 (#3276)
  • \n
\n

Blackd

\n
    \n
  • Windows style (CRLF) newlines will be preserved (#3257).
  • \n
\n

Integrations

\n
    \n
  • Vim plugin: add flag (g:black_preview) to enable/disable the preview style (#3246)
  • \n
  • Update GitHub Action to support formatting of Jupyter Notebook files via a jupyter\noption (#3282)
  • \n
  • Update GitHub Action to support use of version specifiers (e.g. <23) for Black\nversion (#3265)
  • \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", "created_at": "2022-10-07T13:13:41Z", "updated_at": "2022-10-27T20:51:46Z", "closed_at": "2022-10-27T20:51:45Z", "merged_at": "2022-10-27T20:51:45Z", "merge_commit_sha": "2c36e45447494cd7505440943367e29ec57c8e72", "assignee": null, "milestone": null, "draft": 0, "head": "21da9bebfc4811314a49140b0c31e86b9d05009f", "base": "d2ca13b699d441a201c55cb72ff96919d3cd22bf", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1839", "merged_by": null, "auto_merge": null} {"id": 1504918180, "node_id": "PR_kwDOBm6k_c5Zszqk", "number": 2175, "state": "closed", "locked": 0, "title": "Test against Python 3.12 preview", "user": {"value": 9599, "label": "simonw"}, "body": "https://dev.to/hugovk/help-test-python-312-beta-1508/\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--2175.org.readthedocs.build/en/2175/\n\r\n", "created_at": "2023-09-06T16:09:05Z", "updated_at": "2023-09-06T16:16:28Z", "closed_at": "2023-09-06T16:16:27Z", "merged_at": "2023-09-06T16:16:27Z", "merge_commit_sha": "e86eaaa4f371512689e973c18879298dab51f80a", "assignee": null, "milestone": null, "draft": 0, "head": "21e77c3ff9e4aacaa9442a7b3b36aafd87025115", "base": "05707aa16b5c6c39fbe48b3176b85a8ffe493938", "author_association": "OWNER", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/2175", "merged_by": null, "auto_merge": null} {"id": 492257405, "node_id": "MDExOlB1bGxSZXF1ZXN0NDkyMjU3NDA1", "number": 174, "state": "closed", "locked": 0, "title": "Much, much faster extract() implementation", "user": {"value": 9599, "label": "simonw"}, "body": "Takes my test down from ten minutes to four seconds. Refs #172.", "created_at": "2020-09-24T07:52:31Z", "updated_at": "2020-09-24T15:44:00Z", "closed_at": "2020-09-24T15:43:56Z", "merged_at": "2020-09-24T15:43:56Z", "merge_commit_sha": "022cdd97a9ddab1a152e23e1e1c42e78c1ed0fa9", "assignee": null, "milestone": null, "draft": 0, "head": "227095ee90e2a92effec6478d3e629a24d3ccfba", "base": "0ca5585fcb834122193e8e7186f926217b23cb8a", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/174", "merged_by": null, "auto_merge": null} {"id": 887534558, "node_id": "PR_kwDOCGYnMM405rPe", "number": 419, "state": "closed", "locked": 0, "title": "Ignore common generated files", "user": {"value": 25778, "label": "eyeseast"}, "body": "Closes #418 \r\n\r\nThis adds four files to `.gitignore`:\r\n\r\n\t.hypothesis/\r\n\tPipfile\r\n\tPipfile.lock\r\n\tpyproject.toml\r\n\r\nThose are all generated in the course of development and testing.", "created_at": "2022-03-23T18:06:22Z", "updated_at": "2022-03-24T21:01:44Z", "closed_at": "2022-03-24T21:01:44Z", "merged_at": "2022-03-24T21:01:44Z", "merge_commit_sha": "396f80fcc60da8dd844577114f7920830a2e5403", "assignee": null, "milestone": null, "draft": 0, "head": "228f73615cf993dd3caf3c240682c00392832bb8", "base": "93fa79d30b1531bea281d0eb6b925c4e61bc1aa6", "author_association": "CONTRIBUTOR", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/419", "merged_by": null, "auto_merge": null} {"id": 959088871, "node_id": "PR_kwDOBm6k_c45Kojn", "number": 1753, "state": "closed", "locked": 0, "title": "Bump furo from 2022.4.7 to 2022.6.4.1", "user": {"value": 49699333, "label": "dependabot[bot]"}, "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
", "created_at": "2022-06-06T13:10:22Z", "updated_at": "2022-06-22T13:22:37Z", "closed_at": "2022-06-22T13:22:35Z", "merged_at": null, "merge_commit_sha": "7a9d91728ac8d15d558ffa4201ac3907f9e93905", "assignee": null, "milestone": null, "draft": 0, "head": "23a85154e276c001f920eacb9ad266cb227f7eab", "base": "2e9751672d4fe329b3c359d5b7b1992283185820", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1753", "merged_by": null, "auto_merge": null} {"id": 303990683, "node_id": "MDExOlB1bGxSZXF1ZXN0MzAzOTkwNjgz", "number": 53, "state": "closed", "locked": 0, "title": "Work in progress: m2m() method for creating many-to-many records", "user": {"value": 9599, "label": "simonw"}, "body": "- [x] `table.insert({\"name\": \"Barry\"}).m2m(\"tags\", lookup={\"tag\": \"Coworker\"})`\r\n- [x] Explicit table name `.m2m(\"humans\", ..., m2m_table=\"relationships\")`\r\n- [x] Automatically use an existing m2m table if a single obvious candidate exists (a table with two foreign keys in the correct directions)\r\n- [x] Require the explicit `m2m_table=` argument if multiple candidates for the m2m table exist\r\n- [x] Documentation\r\n\r\nRefs #23", "created_at": "2019-08-03T10:03:56Z", "updated_at": "2019-08-04T03:38:10Z", "closed_at": "2019-08-04T03:37:33Z", "merged_at": "2019-08-04T03:37:33Z", "merge_commit_sha": "4c0912dbf27b12071aca9569bcf7233e60f91c7c", "assignee": null, "milestone": null, "draft": 0, "head": "243bcaa1acd32a173c07b24dca553991493005a0", "base": "e1021030dd2d8d4705ad0e7bae389eeaea7fa17b", "author_association": "OWNER", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/53", "merged_by": null, "auto_merge": null} {"id": 442505088, "node_id": "MDExOlB1bGxSZXF1ZXN0NDQyNTA1MDg4", "number": 883, "state": "open", "locked": 0, "title": "Skip counting hidden tables", "user": {"value": 3243482, "label": "abdusco"}, "body": "Potential fix for https://github.com/simonw/datasette/issues/859.\r\n\r\nDisabling table counts for hidden tables speeds up database page quite a bit. In my setup it reduced load time by 2/3 (~300 -> ~90ms)", "created_at": "2020-07-01T07:38:08Z", "updated_at": "2020-07-02T00:25:44Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "527624338acd38b97bb33b0a0b913d80e8345fee", "assignee": null, "milestone": null, "draft": 0, "head": "251884f58895faf8056b3dfdeae3bb92c5bc58ac", "base": "676bb64c877d73f8ff496cef4632f5a8a5a9283c", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/883", "merged_by": null, "auto_merge": null} {"id": 985781142, "node_id": "PR_kwDOBm6k_c46wdOW", "number": 1766, "state": "closed", "locked": 0, "title": "Keep track of config_dir", "user": {"value": 25778, "label": "eyeseast"}, "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.", "created_at": "2022-07-03T17:37:02Z", "updated_at": "2022-07-18T01:12:45Z", "closed_at": "2022-07-18T01:12:45Z", "merged_at": "2022-07-18T01:12:45Z", "merge_commit_sha": "01369176b0a8943ab45292ffc6f9c929b80a00e8", "assignee": null, "milestone": null, "draft": 0, "head": "257fd240975abf9647217f5d22ccadbecd6ec9f2", "base": "9f1eb0d4eac483b953392157bd9fd6cc4df37de7", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/1766", "merged_by": null, "auto_merge": null} {"id": 1319390463, "node_id": "PR_kwDOBm6k_c5OpEz_", "number": 2061, "state": "open", "locked": 0, "title": "Add \"Packaging a plugin using Poetry\" section in docs", "user": {"value": 1238873, "label": "rclement"}, "body": "This PR adds a new section about packaging a plugin using `poetry` within the \"Writing plugins\" page of the documentation.\r\n\r\n\r\n----\n:books: Documentation preview :books:: https://datasette--2061.org.readthedocs.build/en/2061/\n\r\n", "created_at": "2023-04-19T07:23:28Z", "updated_at": "2023-04-19T07:27:18Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "e777f394dc770714055e48c952e04c1620454e3e", "assignee": null, "milestone": null, "draft": 0, "head": "2650e3ca2c5ae4f21efe216f9959be31d9e58eed", "base": "5890a20c374fb0812d88c9b0ef26a838bfa06c76", "author_association": "FIRST_TIME_CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/2061", "merged_by": null, "auto_merge": null} {"id": 330076263, "node_id": "MDExOlB1bGxSZXF1ZXN0MzMwMDc2MjYz", "number": 602, "state": "closed", "locked": 0, "title": "Offer to format readonly SQL", "user": {"value": 2657547, "label": "rixx"}, "body": "Following discussion in #601, this PR adds a \"Format SQL\" button to\r\nread-only SQL (if the SQL actually differs from the formatting result).\r\n\r\nIt also removes a console error on readonly SQL queries.", "created_at": "2019-10-20T02:29:32Z", "updated_at": "2019-11-04T07:29:33Z", "closed_at": "2019-11-04T02:39:56Z", "merged_at": "2019-11-04T02:39:56Z", "merge_commit_sha": "ee330222f4c3ee66c2fe41ebc76fed56b9cb9a00", "assignee": null, "milestone": null, "draft": 0, "head": "266c3dafb9bf3b12204b6152d7b48e94a131584a", "base": "8050f9e1ece9afd0236ad38c6458c12a4ad917e6", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/602", "merged_by": null, "auto_merge": null} {"id": 724317650, "node_id": "MDExOlB1bGxSZXF1ZXN0NzI0MzE3NjUw", "number": 59, "state": "closed", "locked": 0, "title": "Fix for since_id bug, closes #58", "user": {"value": 42904, "label": "rubenv"}, "body": "Fixes remaining instances of this bug", "created_at": "2021-09-01T09:49:09Z", "updated_at": "2021-09-21T17:37:40Z", "closed_at": "2021-09-21T17:37:40Z", "merged_at": "2021-09-21T17:37:40Z", "merge_commit_sha": "91aa5f578e871a7976ca0a861862f9b9dd162464", "assignee": null, "milestone": null, "draft": 0, "head": "27369e4d1c9702de34ebc125f92ef3fc9d74abed", "base": "74726190d4031bfa36db93e189555e273b35e283", "author_association": "CONTRIBUTOR", "repo": {"value": 206156866, "label": "twitter-to-sqlite"}, "url": "https://github.com/dogsheep/twitter-to-sqlite/pull/59", "merged_by": null, "auto_merge": null} {"id": 727012996, "node_id": "MDExOlB1bGxSZXF1ZXN0NzI3MDEyOTk2", "number": 324, "state": "closed", "locked": 0, "title": "Use python-dateutil package instead of dateutils", "user": {"value": 191622, "label": "meatcar"}, "body": "While working on updating `sqlite-utils` for NixOS/Nixpkgs, I came a cross the following:\r\n\r\nIn 5ec6686153e29ae10d4921a1ad4c841f192f20e2, a new dependency was added on `dateutils` (https://pypi.org/project/dateutils/). \r\n\r\nI believe this is unintentional, and instead `python-dateutil` (https://pypi.org/project/python-dateutil/) was intended.\r\n\r\nMy reasoning is:\r\n- `python-dateutil` is imported here in [recipes.py](https://github.com/simonw/sqlite-utils/blob/5ec6686153e29ae10d4921a1ad4c841f192f20e2/sqlite_utils/recipes.py#L1) \r\n- The `mypy` `type-python-dateutil` dependency in [setup.py](https://github.com/simonw/sqlite-utils/blob/5ec6686153e29ae10d4921a1ad4c841f192f20e2/setup.py#L36)\r\n- `python-dateutil` is a dependency of `dateutils` as seen in the output in [docs/tutorial.ipynb](https://github.com/simonw/sqlite-utils/blob/77c240df56068341561e95e4a412cbfa24dc5bc7/docs/tutorial.ipynb#L43)\r\n\r\nSeems like the trailing \"s\" seems to be the source of confusion \ud83d\ude05\r\n\r\nI've swapped the dependencies out, hope this helps.", "created_at": "2021-09-03T18:31:19Z", "updated_at": "2021-11-14T23:25:40Z", "closed_at": "2021-11-14T23:25:40Z", "merged_at": "2021-11-14T23:25:40Z", "merge_commit_sha": "bc4c42d68879c710c851dba3c98deda96ca6caa8", "assignee": null, "milestone": null, "draft": 0, "head": "275ac3b282947fa5df5d18de835d5d958a778e72", "base": "77c240df56068341561e95e4a412cbfa24dc5bc7", "author_association": "CONTRIBUTOR", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/324", "merged_by": null, "auto_merge": null} {"id": 1429431050, "node_id": "PR_kwDOBm6k_c5VM2MK", "number": 2099, "state": "closed", "locked": 0, "title": "Bump black from 23.3.0 to 23.7.0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "body": "Bumps [black](https://github.com/psf/black) from 23.3.0 to 23.7.0.\n
\nRelease notes\n

Sourced from black's releases.

\n
\n

23.7.0

\n

Highlights

\n
    \n
  • Runtime support for Python 3.7 has been removed. Formatting 3.7 code will still be\nsupported until further notice (#3765)
  • \n
\n

Stable style

\n
    \n
  • Fix a bug where an illegal trailing comma was added to return type annotations using\nPEP 604 unions (#3735)
  • \n
  • Fix several bugs and crashes where comments in stub files were removed or mishandled\nunder some circumstances (#3745)
  • \n
  • Fix a crash with multi-line magic comments like type: ignore within parentheses\n(#3740)
  • \n
  • Fix error in AST validation when Black removes trailing whitespace in a type comment\n(#3773)
  • \n
\n

Preview style

\n
    \n
  • Implicitly concatenated strings used as function args are no longer wrapped inside\nparentheses (#3640)
  • \n
  • Remove blank lines between a class definition and its docstring (#3692)
  • \n
\n

Configuration

\n
    \n
  • The --workers argument to Black can now be specified via the BLACK_NUM_WORKERS\nenvironment variable (#3743)
  • \n
  • .pytest_cache, .ruff_cache and .vscode are now excluded by default (#3691)
  • \n
  • Fix Black not honouring pyproject.toml settings when running --stdin-filename\nand the pyproject.toml found isn't in the current working directory (#3719)
  • \n
  • Black will now error if exclude and extend-exclude have invalid data types in\npyproject.toml, instead of silently doing the wrong thing (#3764)
  • \n
\n

Packaging

\n
    \n
  • Upgrade mypyc from 0.991 to 1.3 (#3697)
  • \n
  • Remove patching of Click that mitigated errors on Python 3.6 with LANG=C (#3768)
  • \n
\n

Parser

\n
    \n
  • Add support for the new PEP 695 syntax in Python 3.12 (#3703)
  • \n
\n

Performance

\n
    \n
  • Speed up Black significantly when the cache is full (#3751)
  • \n
  • Avoid importing IPython in a case where we wouldn't need it (#3748)
  • \n
\n

Output

\n\n
\n

... (truncated)

\n
\n
\nChangelog\n

Sourced from black's changelog.

\n
\n

23.7.0

\n

Highlights

\n
    \n
  • Runtime support for Python 3.7 has been removed. Formatting 3.7 code will still be\nsupported until further notice (#3765)
  • \n
\n

Stable style

\n
    \n
  • Fix a bug where an illegal trailing comma was added to return type annotations using\nPEP 604 unions (#3735)
  • \n
  • Fix several bugs and crashes where comments in stub files were removed or mishandled\nunder some circumstances (#3745)
  • \n
  • Fix a crash with multi-line magic comments like type: ignore within parentheses\n(#3740)
  • \n
  • Fix error in AST validation when Black removes trailing whitespace in a type comment\n(#3773)
  • \n
\n

Preview style

\n
    \n
  • Implicitly concatenated strings used as function args are no longer wrapped inside\nparentheses (#3640)
  • \n
  • Remove blank lines between a class definition and its docstring (#3692)
  • \n
\n

Configuration

\n
    \n
  • The --workers argument to Black can now be specified via the BLACK_NUM_WORKERS\nenvironment variable (#3743)
  • \n
  • .pytest_cache, .ruff_cache and .vscode are now excluded by default (#3691)
  • \n
  • Fix Black not honouring pyproject.toml settings when running --stdin-filename\nand the pyproject.toml found isn't in the current working directory (#3719)
  • \n
  • Black will now error if exclude and extend-exclude have invalid data types in\npyproject.toml, instead of silently doing the wrong thing (#3764)
  • \n
\n

Packaging

\n
    \n
  • Upgrade mypyc from 0.991 to 1.3 (#3697)
  • \n
  • Remove patching of Click that mitigated errors on Python 3.6 with LANG=C (#3768)
  • \n
\n

Parser

\n
    \n
  • Add support for the new PEP 695 syntax in Python 3.12 (#3703)
  • \n
\n

Performance

\n
    \n
  • Speed up Black significantly when the cache is full (#3751)
  • \n
  • Avoid importing IPython in a case where we wouldn't need it (#3748)
  • \n
\n

Output

\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=23.3.0&new-version=23.7.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--2099.org.readthedocs.build/en/2099/\n\r\n", "created_at": "2023-07-11T13:05:53Z", "updated_at": "2023-07-21T21:19:25Z", "closed_at": "2023-07-21T21:19:24Z", "merged_at": "2023-07-21T21:19:24Z", "merge_commit_sha": "3a51ca901427ac93b0ed0638fd1f82fb647a299a", "assignee": null, "milestone": null, "draft": 0, "head": "2761e4db2429e5d5588d8d1e54f30a6aafa7456b", "base": "0f7192b6154edb576c41b55bd3f2a3f53e5f436a", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/2099", "merged_by": null, "auto_merge": null} {"id": 592364255, "node_id": "MDExOlB1bGxSZXF1ZXN0NTkyMzY0MjU1", "number": 16, "state": "open", "locked": 0, "title": "Add a fallback ID, print if no ID found", "user": {"value": 1234956, "label": "n8henrie"}, "body": "Fixes https://github.com/dogsheep/healthkit-to-sqlite/issues/14\n", "created_at": "2021-03-13T13:38:29Z", "updated_at": "2021-03-13T14:44:04Z", "closed_at": null, "merged_at": null, "merge_commit_sha": "16ab307b2138891f226a66e4954c5470de753a0f", "assignee": null, "milestone": null, "draft": 0, "head": "27b3d54ccfe7d861770a9d0b173f6503580fea4a", "base": "71e36e1cf034b96de2a8e6652265d782d3fdf63b", "author_association": "FIRST_TIME_CONTRIBUTOR", "repo": {"value": 197882382, "label": "healthkit-to-sqlite"}, "url": "https://github.com/dogsheep/healthkit-to-sqlite/pull/16", "merged_by": null, "auto_merge": null} {"id": 623755723, "node_id": "MDExOlB1bGxSZXF1ZXN0NjIzNzU1NzIz", "number": 258, "state": "closed", "locked": 0, "title": "Fixing insert from JSON containing strings with non-ascii characters \u2026", "user": {"value": 6586811, "label": "dylan-wu"}, "body": "\u2026are escaped aps unicode for lists, tuples, dicts\r\n\r\nFix of #257 ", "created_at": "2021-04-26T20:50:00Z", "updated_at": "2021-05-19T02:47:44Z", "closed_at": "2021-05-19T02:47:44Z", "merged_at": "2021-05-19T02:47:44Z", "merge_commit_sha": "6f4f9a3effeb16de0348d3cf136664f7531f498d", "assignee": null, "milestone": null, "draft": 0, "head": "27e7c1ae1913e2127361af4fc664c2061fb76627", "base": "22f1d9e1999f70af4c5b0f880a820cd9eead3942", "author_association": "CONTRIBUTOR", "repo": {"value": 140912432, "label": "sqlite-utils"}, "url": "https://github.com/simonw/sqlite-utils/pull/258", "merged_by": null, "auto_merge": null} {"id": 407929128, "node_id": "MDExOlB1bGxSZXF1ZXN0NDA3OTI5MTI4", "number": 734, "state": "closed", "locked": 0, "title": "Update janus requirement from ~=0.4.0 to >=0.4,<0.6", "user": {"value": 27856297, "label": "dependabot-preview[bot]"}, "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.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
  • Add py.typed macro #89
  • \n
  • Drop python 3.4 support and fix minimal version python3.5.3 #88
  • \n
  • Add property with that indicates if queue is closed #86
  • \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

0.3.0 (2017-02-21)

\n
    \n
  • Expose unfinished_tasks property #34
  • \n
\n

0.2.4 (2016-12-05)

\n
    \n
  • Restore tarball deploying
  • \n
\n

0.2.3 (2016-07-12)

\n
    \n
  • Fix exception type
  • \n
\n

0.2.2 (2016-07-11)

\n
    \n
  • Update asyncio.async() to use asyncio.ensure_future() #6
  • \n
\n

0.2.1 (2016-03-24)

\n
    \n
  • Fix python setup.py test command #4
  • \n
\n

0.2.0 (2015-09-20)

\n ... (truncated)\n
\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- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\n\n\n
", "created_at": "2020-04-23T13:43:45Z", "updated_at": "2020-05-04T16:48:14Z", "closed_at": "2020-05-04T16:48:04Z", "merged_at": "2020-05-04T16:48:04Z", "merge_commit_sha": "109c5a430d53fe38b1300e0daa20f5cef047a08e", "assignee": null, "milestone": null, "draft": 0, "head": "281b2c1acf1a2ef39c784dc73f1eb184d898d369", "base": "e232f77055880b38cc0b738607cd50cde9188eaf", "author_association": "CONTRIBUTOR", "repo": {"value": 107914493, "label": "datasette"}, "url": "https://github.com/simonw/datasette/pull/734", "merged_by": null, "auto_merge": null}