{"html_url": "https://github.com/simonw/datasette/issues/1214#issuecomment-771992628", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1214", "id": 771992628, "node_id": "MDEyOklzc3VlQ29tbWVudDc3MTk5MjYyOA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-02-02T21:15:18Z", "updated_at": "2021-02-02T21:15:18Z", "author_association": "OWNER", "body": "The cause of this bug is form fields which begin with `_` but ARE displayed as form inputs on the page - hence should not be duplicated in an `` element.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 799693777, "label": "Re-submitting filter form duplicates _x querystring arguments"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1214#issuecomment-771992025", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1214", "id": 771992025, "node_id": "MDEyOklzc3VlQ29tbWVudDc3MTk5MjAyNQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-02-02T21:14:16Z", "updated_at": "2021-02-02T21:14:16Z", "author_association": "OWNER", "body": "As a result, navigating to https://github-to-sqlite.dogsheep.net/github/labels?_search=help and clearing out the `_search` field then submitting the form does NOT clear the search term.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 799693777, "label": "Re-submitting filter form duplicates _x querystring arguments"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1212#issuecomment-771976561", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1212", "id": 771976561, "node_id": "MDEyOklzc3VlQ29tbWVudDc3MTk3NjU2MQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-02-02T20:53:27Z", "updated_at": "2021-02-02T20:53:27Z", "author_association": "OWNER", "body": "It would be great if we could get `python-xdist` to run too - I tried it in the past and gave up when I ran into those race conditions, but I've not done any further digging to see if there's a way to fix that.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 797651831, "label": "Tests are very slow. "}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1212#issuecomment-771975941", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1212", "id": 771975941, "node_id": "MDEyOklzc3VlQ29tbWVudDc3MTk3NTk0MQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-02-02T20:52:36Z", "updated_at": "2021-02-02T20:52:36Z", "author_association": "OWNER", "body": "37 minutes, wow! They're a little slow for me (4-5 minutes perhaps) but not nearly that bad.\r\n\r\nThanks for running that profile. I think you're right: figuring out how to use more session scopes would definitely help.\r\n\r\nThe `:memory:` idea is interesting too. The new `memory_name=` feature added in #1151 (released in Datasette 0.54) could help a lot here, since it allows Datasette instances to share the same in-memory database across multiple HTTP requests and connections.\r\n\r\nNote that `memory_name=` also persists within test runs themselves, independently of any `scope=` options on the fixtures. That might actually help us here!\r\n\r\nI'd be delighted if you explored this issue further, especially the option of using `memory_name=` for the fixtures databases used by the tests.\r\n\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 797651831, "label": "Tests are very slow. "}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1213#issuecomment-771968675", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1213", "id": 771968675, "node_id": "MDEyOklzc3VlQ29tbWVudDc3MTk2ODY3NQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-02-02T20:41:55Z", "updated_at": "2021-02-02T20:41:55Z", "author_association": "OWNER", "body": "So maybe I could a special response header which ASGI middleware can pick up that means \"Don't attempt to gzip this, just stream it through\".", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 799663959, "label": "gzip support for HTML (and JSON) responses"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1213#issuecomment-771968177", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1213", "id": 771968177, "node_id": "MDEyOklzc3VlQ29tbWVudDc3MTk2ODE3Nw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-02-02T20:41:13Z", "updated_at": "2021-02-02T20:41:13Z", "author_association": "OWNER", "body": "Starlette accumulates the full response body in a `body` variable and then does this:\r\n```python\r\n elif message_type == \"http.response.body\":\r\n # Remaining body in streaming GZip response.\r\n body = message.get(\"body\", b\"\")\r\n more_body = message.get(\"more_body\", False)\r\n\r\n self.gzip_file.write(body)\r\n if not more_body:\r\n self.gzip_file.close()\r\n\r\n message[\"body\"] = self.gzip_buffer.getvalue()\r\n self.gzip_buffer.seek(0)\r\n self.gzip_buffer.truncate()\r\n\r\n await self.send(message)\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 799663959, "label": "gzip support for HTML (and JSON) responses"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1213#issuecomment-771965281", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1213", "id": 771965281, "node_id": "MDEyOklzc3VlQ29tbWVudDc3MTk2NTI4MQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-02-02T20:37:08Z", "updated_at": "2021-02-02T20:39:24Z", "author_association": "OWNER", "body": "Starlette's gzip middleware implementation is here: https://github.com/encode/starlette/blob/0.14.2/starlette/middleware/gzip.py", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 799663959, "label": "gzip support for HTML (and JSON) responses"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1211#issuecomment-771127458", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1211", "id": 771127458, "node_id": "MDEyOklzc3VlQ29tbWVudDc3MTEyNzQ1OA==", "user": {"value": 4488943, "label": "kbaikov"}, "created_at": "2021-02-01T20:13:39Z", "updated_at": "2021-02-01T20:13:39Z", "author_association": "CONTRIBUTOR", "body": "Ping @simonw ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 797649915, "label": "Use context manager instead of plain open"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1159#issuecomment-770865698", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1159", "id": 770865698, "node_id": "MDEyOklzc3VlQ29tbWVudDc3MDg2NTY5OA==", "user": {"value": 552629, "label": "lovasoa"}, "created_at": "2021-02-01T13:42:29Z", "updated_at": "2021-02-01T13:42:29Z", "author_association": "NONE", "body": "@simonw : Could you have a look at this ? I think this really improves readability.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 774332247, "label": "Improve the display of facets information"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1211#issuecomment-770343684", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1211", "id": 770343684, "node_id": "MDEyOklzc3VlQ29tbWVudDc3MDM0MzY4NA==", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2021-01-31T08:03:40Z", "updated_at": "2021-01-31T08:03:40Z", "author_association": "NONE", "body": "# [Codecov](https://codecov.io/gh/simonw/datasette/pull/1211?src=pr&el=h1) Report\n> Merging [#1211](https://codecov.io/gh/simonw/datasette/pull/1211?src=pr&el=desc) (e33ccaa) into [main](https://codecov.io/gh/simonw/datasette/commit/dde3c500c73ace33529672f7d862b76753d309cc?el=desc) (dde3c50) will **decrease** coverage by `0.00%`.\n> The diff coverage is `92.85%`.\n\n[![Impacted file tree graph](https://codecov.io/gh/simonw/datasette/pull/1211/graphs/tree.svg?width=650&height=150&src=pr&token=eSahVY7kw1)](https://codecov.io/gh/simonw/datasette/pull/1211?src=pr&el=tree)\n\n```diff\n@@ Coverage Diff @@\n## main #1211 +/- ##\n==========================================\n- Coverage 91.54% 91.53% -0.01% \n==========================================\n Files 32 32 \n Lines 3948 3959 +11 \n==========================================\n+ Hits 3614 3624 +10 \n- Misses 334 335 +1 \n```\n\n\n| [Impacted Files](https://codecov.io/gh/simonw/datasette/pull/1211?src=pr&el=tree) | Coverage \u0394 | |\n|---|---|---|\n| [datasette/cli.py](https://codecov.io/gh/simonw/datasette/pull/1211/diff?src=pr&el=tree#diff-ZGF0YXNldHRlL2NsaS5weQ==) | `77.29% <66.66%> (-0.31%)` | :arrow_down: |\n| [datasette/app.py](https://codecov.io/gh/simonw/datasette/pull/1211/diff?src=pr&el=tree#diff-ZGF0YXNldHRlL2FwcC5weQ==) | `95.62% <100.00%> (+<0.01%)` | :arrow_up: |\n| [datasette/publish/cloudrun.py](https://codecov.io/gh/simonw/datasette/pull/1211/diff?src=pr&el=tree#diff-ZGF0YXNldHRlL3B1Ymxpc2gvY2xvdWRydW4ucHk=) | `96.96% <100.00%> (+0.09%)` | :arrow_up: |\n| [datasette/publish/heroku.py](https://codecov.io/gh/simonw/datasette/pull/1211/diff?src=pr&el=tree#diff-ZGF0YXNldHRlL3B1Ymxpc2gvaGVyb2t1LnB5) | `87.73% <100.00%> (+0.60%)` | :arrow_up: |\n| [datasette/utils/\\_\\_init\\_\\_.py](https://codecov.io/gh/simonw/datasette/pull/1211/diff?src=pr&el=tree#diff-ZGF0YXNldHRlL3V0aWxzL19faW5pdF9fLnB5) | `94.13% <100.00%> (+0.02%)` | :arrow_up: |\n\n------\n\n[Continue to review full report at Codecov](https://codecov.io/gh/simonw/datasette/pull/1211?src=pr&el=continue).\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\n> `\u0394 = absolute (impact)`, `\u00f8 = not affected`, `? = missing data`\n> Powered by [Codecov](https://codecov.io/gh/simonw/datasette/pull/1211?src=pr&el=footer). Last update [dde3c50...e33ccaa](https://codecov.io/gh/simonw/datasette/pull/1211?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 797649915, "label": "Use context manager instead of plain open"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/github-to-sqlite/issues/51#issuecomment-770150526", "issue_url": "https://api.github.com/repos/dogsheep/github-to-sqlite/issues/51", "id": 770150526, "node_id": "MDEyOklzc3VlQ29tbWVudDc3MDE1MDUyNg==", "user": {"value": 22578954, "label": "daniel-butler"}, "created_at": "2021-01-30T03:44:19Z", "updated_at": "2021-01-30T03:47:24Z", "author_association": "CONTRIBUTOR", "body": "I don't have much experience with github's rate limiting. In my day job we use the [tenacity library](https://github.com/jd/tenacity) to handle http errors we get.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 703246031, "label": "github-to-sqlite should handle rate limits better"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/github-to-sqlite/issues/60#issuecomment-770112248", "issue_url": "https://api.github.com/repos/dogsheep/github-to-sqlite/issues/60", "id": 770112248, "node_id": "MDEyOklzc3VlQ29tbWVudDc3MDExMjI0OA==", "user": {"value": 22578954, "label": "daniel-butler"}, "created_at": "2021-01-30T00:01:03Z", "updated_at": "2021-01-30T01:14:42Z", "author_association": "CONTRIBUTOR", "body": "Yes that would be cool! I wouldn't mind helping. Is this the meat of it? https://github.com/dogsheep/twitter-to-sqlite/blob/21fc1cad6dd6348c67acff90a785b458d3a81275/twitter_to_sqlite/utils.py#L512\r\n\r\nIt looks like the cli option is added with this decorator : https://github.com/dogsheep/twitter-to-sqlite/blob/21fc1cad6dd6348c67acff90a785b458d3a81275/twitter_to_sqlite/cli.py#L14\r\n\r\nI looked a bit at utils.py in the GitHub repository. I was surprised at the amount of manual mapping of the API response you had to do to get this to work.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 797097140, "label": "Use Data from SQLite in other commands"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/github-to-sqlite/issues/60#issuecomment-770071568", "issue_url": "https://api.github.com/repos/dogsheep/github-to-sqlite/issues/60", "id": 770071568, "node_id": "MDEyOklzc3VlQ29tbWVudDc3MDA3MTU2OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-29T21:56:15Z", "updated_at": "2021-01-29T21:56:15Z", "author_association": "MEMBER", "body": "I really like the way you're using pipes here - really smart. It's similar to how I build the demo database in this GitHub Actions workflow:\r\n\r\nhttps://github.com/dogsheep/github-to-sqlite/blob/62dfd3bc4014b108200001ef4bc746feb6f33b45/.github/workflows/deploy-demo.yml#L52-L82\r\n\r\n`twitter-to-sqlite` actually has a mechanism for doing this kind of thing, documented at https://github.com/dogsheep/twitter-to-sqlite#providing-input-from-a-sql-query-with---sql-and---attach\r\n\r\nIt lets you do things like:\r\n\r\n```\r\n$ twitter-to-sqlite users-lookup my.db --sql=\"select follower_id from following\" --ids\r\n```\r\nMaybe I should add something similar to `github-to-sqlite`? Feels like it could be really useful.", "reactions": "{\"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 797097140, "label": "Use Data from SQLite in other commands"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/twitter-to-sqlite/issues/56#issuecomment-769973212", "issue_url": "https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/56", "id": 769973212, "node_id": "MDEyOklzc3VlQ29tbWVudDc2OTk3MzIxMg==", "user": {"value": 42315895, "label": "gsajko"}, "created_at": "2021-01-29T18:29:02Z", "updated_at": "2021-01-29T18:31:55Z", "author_association": "NONE", "body": "I think it was with `twitter-to-sqlite home-timeline home.db -a auth.json --since`\r\nand Im using only this command to grab tweets \r\n\r\nfrom cron tab\r\n`2,7,12,17,22,27,32,37,42,47,52,57 * * * * run-one /home/gsajko/miniconda3/bin/twitter-to-sqlite home-timeline /home/gsajko/work/custom_twitter_feed/home.db -a /home/gsajko/work/custom_twitter_feed/auth/auth.json --since`\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 796736607, "label": "Not all quoted statuses get fetched?"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/twitter-to-sqlite/issues/56#issuecomment-769957751", "issue_url": "https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/56", "id": 769957751, "node_id": "MDEyOklzc3VlQ29tbWVudDc2OTk1Nzc1MQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-29T17:59:40Z", "updated_at": "2021-01-29T17:59:40Z", "author_association": "MEMBER", "body": "This is interesting - how did you create that initial table? Was this using the `twitter-to-sqlite import archive.db ~/Downloads/twitter-2019-06-25-b31f2.zip` command, or something else?", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 796736607, "label": "Not all quoted statuses get fetched?"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1207#issuecomment-769534187", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1207", "id": 769534187, "node_id": "MDEyOklzc3VlQ29tbWVudDc2OTUzNDE4Nw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-29T02:37:19Z", "updated_at": "2021-01-29T02:37:19Z", "author_association": "OWNER", "body": "https://docs.datasette.io/en/latest/testing_plugins.html#using-pdb-for-errors-thrown-inside-datasette", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 793881756, "label": "Document the Datasette(..., pdb=True) testing pattern"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1209#issuecomment-769455370", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1209", "id": 769455370, "node_id": "MDEyOklzc3VlQ29tbWVudDc2OTQ1NTM3MA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-28T23:00:21Z", "updated_at": "2021-01-28T23:00:21Z", "author_association": "OWNER", "body": "Good catch on the workaround here. The root problem is that `datasette-template-sql` looks for the first available databsae if you don't provide it with a `database=` argument, and in Datasette 0.54 the first available database changed to being the new `_internal` database.\r\n\r\nIs this a bug? I think it is - because the documented behaviour on https://docs.datasette.io/en/stable/internals.html#get-database-name is this:\r\n\r\n> `name` - string, optional\r\n>\r\n> The name to be used for this database - this will be used in the URL path, e.g. `/dbname`. If not specified Datasette will pick one based on the filename or memory name.\r\n\r\nSince the new behaviour differs from what was in the documentation I'm going to treat this as a bug and fix it.", "reactions": "{\"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 795367402, "label": "v0.54 500 error from sql query in custom template; code worked in v0.53; found a workaround"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1205#issuecomment-769453074", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1205", "id": 769453074, "node_id": "MDEyOklzc3VlQ29tbWVudDc2OTQ1MzA3NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-28T22:54:49Z", "updated_at": "2021-01-28T22:55:02Z", "author_association": "OWNER", "body": "\r\nI also checked that the following works:\r\n\r\n echo '{\"foo\": \"bar\"}' | sqlite-utils insert _memory.db demo -\r\n datasette _memory.db --memory\r\n\r\nSure enough, it results in the following Datasette homepage - thanks to #509\r\n\r\n\"Datasette___memory___memory_2\"", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 793027837, "label": "Rename /:memory: to /_memory"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1205#issuecomment-769452084", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1205", "id": 769452084, "node_id": "MDEyOklzc3VlQ29tbWVudDc2OTQ1MjA4NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-28T22:52:23Z", "updated_at": "2021-01-28T22:52:23Z", "author_association": "OWNER", "body": "Here are the redirect tests: https://github.com/simonw/datasette/blob/1600d2a3ec3ada1f6fb5b1eb73bdaeccb5f80530/tests/test_api.py#L635-L648", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 793027837, "label": "Rename /:memory: to /_memory"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1205#issuecomment-769442165", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1205", "id": 769442165, "node_id": "MDEyOklzc3VlQ29tbWVudDc2OTQ0MjE2NQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-28T22:30:16Z", "updated_at": "2021-01-28T22:30:27Z", "author_association": "OWNER", "body": "I'm going to do this, with redirects from `/:memory:*`.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 793027837, "label": "Rename /:memory: to /_memory"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1210#issuecomment-769274591", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1210", "id": 769274591, "node_id": "MDEyOklzc3VlQ29tbWVudDc2OTI3NDU5MQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-28T18:10:02Z", "updated_at": "2021-01-28T18:10:02Z", "author_association": "OWNER", "body": "That definitely sounds like a bug! Can you provide a copy of your `metadata.JSON` and the command-line you are using to launch Datasette?", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 796234313, "label": "Immutable Database w/ Canned Queries"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/twitter-to-sqlite/issues/54#issuecomment-767888743", "issue_url": "https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/54", "id": 767888743, "node_id": "MDEyOklzc3VlQ29tbWVudDc2Nzg4ODc0Mw==", "user": {"value": 19328961, "label": "henry501"}, "created_at": "2021-01-26T23:07:41Z", "updated_at": "2021-01-26T23:07:41Z", "author_association": "NONE", "body": "My import got much further with the applied fixes than 0.21.3, but not 100%. I do appear to have all of the tweets imported at least. \r\nNot sure when I'll have a chance to look further to try to fix or see what didn't make it into the import.\r\n\r\nHere's my output:\r\n\r\n```\r\ndirect-messages-group: not yet implemented\r\nbranch-links: not yet implemented\r\nperiscope-expired-broadcasts: not yet implemented\r\ndirect-messages: not yet implemented\r\nmute: not yet implemented\r\nperiscope-comments-made-by-user: not yet implemented\r\nperiscope-ban-information: not yet implemented\r\nperiscope-profile-description: not yet implemented\r\nscreen-name-change: not yet implemented\r\nmanifest: not yet implemented\r\nfleet: not yet implemented\r\nuser-link-clicks: not yet implemented\r\nperiscope-broadcast-metadata: not yet implemented\r\ncontact: not yet implemented\r\nfleet-mute: not yet implemented\r\ndevice-token: not yet implemented\r\nprotected-history: not yet implemented\r\ndirect-message-mute: not yet implemented\r\nTraceback (most recent call last):\r\n File \"/Users/henry/.local/share/virtualenvs/python-sqlite-testing-mF3G2xKl/bin/twitter-to-sqlite\", line 33, in \r\n sys.exit(load_entry_point('twitter-to-sqlite==0.21.3', 'console_scripts', 'twitter-to-sqlite')())\r\n File \"/Users/henry/.local/share/virtualenvs/python-sqlite-testing-mF3G2xKl/lib/python3.9/site-packages/click/core.py\", line 829, in __call__\r\n return self.main(*args, **kwargs)\r\n File \"/Users/henry/.local/share/virtualenvs/python-sqlite-testing-mF3G2xKl/lib/python3.9/site-packages/click/core.py\", line 782, in main\r\n rv = self.invoke(ctx)\r\n File \"/Users/henry/.local/share/virtualenvs/python-sqlite-testing-mF3G2xKl/lib/python3.9/site-packages/click/core.py\", line 1259, in invoke\r\n return _process_result(sub_ctx.command.invoke(sub_ctx))\r\n File \"/Users/henry/.local/share/virtualenvs/python-sqlite-testing-mF3G2xKl/lib/python3.9/site-packages/click/core.py\", line 1066, in invoke\r\n return ctx.invoke(self.callback, **ctx.params)\r\n File \"/Users/henry/.local/share/virtualenvs/python-sqlite-testing-mF3G2xKl/lib/python3.9/site-packages/click/core.py\", line 610, in invoke\r\n return callback(*args, **kwargs)\r\n File \"/Users/henry/.local/share/virtualenvs/python-sqlite-testing-mF3G2xKl/lib/python3.9/site-packages/twitter_to_sqlite/cli.py\", line 772, in import_\r\n archive.import_from_file(db, filepath.name, open(filepath, \"rb\").read())\r\n File \"/Users/henry/.local/share/virtualenvs/python-sqlite-testing-mF3G2xKl/lib/python3.9/site-packages/twitter_to_sqlite/archive.py\", line 233, in import_from_file\r\n to_insert = transformer(data)\r\n File \"/Users/henry/.local/share/virtualenvs/python-sqlite-testing-mF3G2xKl/lib/python3.9/site-packages/twitter_to_sqlite/archive.py\", line 21, in callback\r\n return {filename: [fn(item) for item in data]}\r\n File \"/Users/henry/.local/share/virtualenvs/python-sqlite-testing-mF3G2xKl/lib/python3.9/site-packages/twitter_to_sqlite/archive.py\", line 21, in \r\n return {filename: [fn(item) for item in data]}\r\n File \"/Users/henry/.local/share/virtualenvs/python-sqlite-testing-mF3G2xKl/lib/python3.9/site-packages/twitter_to_sqlite/archive.py\", line 88, in ageinfo\r\n return item[\"ageMeta\"][\"ageInfo\"]\r\nKeyError: 'ageInfo'\r\n\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 779088071, "label": "Archive import appears to be broken on recent exports"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1208#issuecomment-767823684", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1208", "id": 767823684, "node_id": "MDEyOklzc3VlQ29tbWVudDc2NzgyMzY4NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-26T20:58:51Z", "updated_at": "2021-01-26T20:58:51Z", "author_association": "OWNER", "body": "This is a good catch - I've been lazy about this, but you're right that it's an issue that needs cleaning up. Would be very happy to apply a PR, thanks!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 794554881, "label": "A lot of open(file) functions are used without a context manager thus producing ResourceWarning: unclosed file <_io.TextIOWrapper"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1151#issuecomment-767762551", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1151", "id": 767762551, "node_id": "MDEyOklzc3VlQ29tbWVudDc2Nzc2MjU1MQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-26T19:07:44Z", "updated_at": "2021-01-26T19:07:44Z", "author_association": "OWNER", "body": "Mentioned in https://simonwillison.net/2021/Jan/25/datasette/", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 770448622, "label": "Database class mechanism for cross-connection in-memory databases"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/991#issuecomment-767761155", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/991", "id": 767761155, "node_id": "MDEyOklzc3VlQ29tbWVudDc2Nzc2MTE1NQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-26T19:05:21Z", "updated_at": "2021-01-26T19:06:36Z", "author_association": "OWNER", "body": "Idea: implement this using the existing table view, with a custom template called `table-internal-bb0ec0-tables.html` - that's the custom template listed in the HTML comments at the bottom of https://latest.datasette.io/_internal/tables", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 714377268, "label": "Redesign application homepage"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1201#issuecomment-766991680", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1201", "id": 766991680, "node_id": "MDEyOklzc3VlQ29tbWVudDc2Njk5MTY4MA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-25T17:42:21Z", "updated_at": "2021-01-25T17:42:21Z", "author_association": "OWNER", "body": "https://docs.datasette.io/en/stable/changelog.html#v0-54", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 792904595, "label": "Release notes for Datasette 0.54"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1206#issuecomment-766589070", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1206", "id": 766589070, "node_id": "MDEyOklzc3VlQ29tbWVudDc2NjU4OTA3MA==", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2021-01-25T06:50:30Z", "updated_at": "2021-01-25T17:31:11Z", "author_association": "NONE", "body": "# [Codecov](https://codecov.io/gh/simonw/datasette/pull/1206?src=pr&el=h1) Report\n> Merging [#1206](https://codecov.io/gh/simonw/datasette/pull/1206?src=pr&el=desc) (06480e1) into [main](https://codecov.io/gh/simonw/datasette/commit/a5ede3cdd455e2bb1a1fb2f4e1b5a9855caf5179?el=desc) (a5ede3c) will **not change** coverage.\n> The diff coverage is `100.00%`.\n\n[![Impacted file tree graph](https://codecov.io/gh/simonw/datasette/pull/1206/graphs/tree.svg?width=650&height=150&src=pr&token=eSahVY7kw1)](https://codecov.io/gh/simonw/datasette/pull/1206?src=pr&el=tree)\n\n```diff\n@@ Coverage Diff @@\n## main #1206 +/- ##\n=======================================\n Coverage 91.53% 91.53% \n=======================================\n Files 32 32 \n Lines 3947 3947 \n=======================================\n Hits 3613 3613 \n Misses 334 334 \n```\n\n\n| [Impacted Files](https://codecov.io/gh/simonw/datasette/pull/1206?src=pr&el=tree) | Coverage \u0394 | |\n|---|---|---|\n| [datasette/version.py](https://codecov.io/gh/simonw/datasette/pull/1206/diff?src=pr&el=tree#diff-ZGF0YXNldHRlL3ZlcnNpb24ucHk=) | `100.00% <100.00%> (\u00f8)` | |\n\n------\n\n[Continue to review full report at Codecov](https://codecov.io/gh/simonw/datasette/pull/1206?src=pr&el=continue).\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\n> `\u0394 = absolute (impact)`, `\u00f8 = not affected`, `? = missing data`\n> Powered by [Codecov](https://codecov.io/gh/simonw/datasette/pull/1206?src=pr&el=footer). Last update [a5ede3c...571476d](https://codecov.io/gh/simonw/datasette/pull/1206?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 793086333, "label": "Release 0.54"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1206#issuecomment-766588371", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1206", "id": 766588371, "node_id": "MDEyOklzc3VlQ29tbWVudDc2NjU4ODM3MQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-25T06:49:06Z", "updated_at": "2021-01-25T06:49:06Z", "author_association": "OWNER", "body": "Last thing to do: write up the annotated version of these release notes, assign it a URL on my blog and link to it from the release notes here so I can publish them simultaneously.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 793086333, "label": "Release 0.54"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1206#issuecomment-766588020", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1206", "id": 766588020, "node_id": "MDEyOklzc3VlQ29tbWVudDc2NjU4ODAyMA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-25T06:48:20Z", "updated_at": "2021-01-25T06:48:20Z", "author_association": "OWNER", "body": "Issues to reference in the commit message: #509, #1091, #1150, #1151, #1166, #1167, #1178, #1181, #1182, #1184, #1185, #1186, #1187, #1194, #1198", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 793086333, "label": "Release 0.54"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1201#issuecomment-766586151", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1201", "id": 766586151, "node_id": "MDEyOklzc3VlQ29tbWVudDc2NjU4NjE1MQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-25T06:44:43Z", "updated_at": "2021-01-25T06:44:43Z", "author_association": "OWNER", "body": "OK, release notes are ready to merge from that branch. I'll ship the release in the morning, to give me time to write the accompanying annotated release notes.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 792904595, "label": "Release notes for Datasette 0.54"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1201#issuecomment-766545604", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1201", "id": 766545604, "node_id": "MDEyOklzc3VlQ29tbWVudDc2NjU0NTYwNA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-25T05:14:31Z", "updated_at": "2021-01-25T05:14:31Z", "author_association": "OWNER", "body": "The two big ticket items are `