{"html_url": "https://github.com/simonw/datasette/issues/870#issuecomment-650696054", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/870", "id": 650696054, "node_id": "MDEyOklzc3VlQ29tbWVudDY1MDY5NjA1NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-06-28T04:52:41Z", "updated_at": "2022-03-15T20:07:17Z", "author_association": "OWNER", "body": "This would be a lot easier if I had extracted out the hash logic to a plugin, see:\r\n- #647", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 646737558, "label": "Refactor default views to use register_routes"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/131#issuecomment-1067981656", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/131", "id": 1067981656, "node_id": "IC_kwDOCGYnMM4_qBtY", "user": {"value": 25778, "label": "eyeseast"}, "created_at": "2022-03-15T13:21:42Z", "updated_at": "2022-03-15T13:21:42Z", "author_association": "CONTRIBUTOR", "body": "Just ran into this issue last night. I have a big table that's _mostly_ numbers, but also a zip code column in a state where ZIP codes start with 0. Would be great to run something like this:\r\n\r\n```sh\r\nsqlite-utils insert data.db places file.csv --csv --detect-types --type zipcode text\r\n```\r\n\r\nMaybe I'll take a crack at this one.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 675753042, "label": "sqlite-utils insert: options for column types"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1657#issuecomment-1068125636", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1657", "id": 1068125636, "node_id": "IC_kwDOBm6k_c4_qk3E", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T15:30:54Z", "updated_at": "2022-03-15T15:30:54Z", "author_association": "OWNER", "body": "I've made a real mess of this. I'm going to revert Datasette`main` back to the last commit that passed the tests and try this again in a branch.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1168995756, "label": "Tilde encoding: use ~ instead of - for dash-encoding"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1657#issuecomment-1068126821", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1657", "id": 1068126821, "node_id": "IC_kwDOBm6k_c4_qlJl", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T15:31:54Z", "updated_at": "2022-03-15T15:31:54Z", "author_association": "OWNER", "body": "The state I had got to prior to that revert is in https://github.com/simonw/datasette/tree/issue-1657-wip", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1168995756, "label": "Tilde encoding: use ~ instead of - for dash-encoding"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1658#issuecomment-1068138578", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1658", "id": 1068138578, "node_id": "IC_kwDOBm6k_c4_qoBS", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T15:42:49Z", "updated_at": "2022-03-15T15:42:49Z", "author_association": "OWNER", "body": "Easiest way to do this was with three reverts, then cherry-pick back the code of conduct.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1169840669, "label": "Revert main to version that passes tests"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1657#issuecomment-1068148013", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1657", "id": 1068148013, "node_id": "IC_kwDOBm6k_c4_qqUt", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T15:50:15Z", "updated_at": "2022-03-15T15:50:15Z", "author_association": "OWNER", "body": "The thing that broke everything was this change:\r\n\r\n\"image\"\r\n\r\nI'm going to bring back the horrible `get_format()` method for the moment, with its weird mutations of the `args` object, then try and get rid of it again later.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1168995756, "label": "Tilde encoding: use ~ instead of - for dash-encoding"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1656#issuecomment-1068154183", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1656", "id": 1068154183, "node_id": "IC_kwDOBm6k_c4_qr1H", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2022-03-15T15:55:34Z", "updated_at": "2022-03-15T15:55:34Z", "author_association": "NONE", "body": "# [Codecov](https://codecov.io/gh/simonw/datasette/pull/1656?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\n> Merging [#1656](https://codecov.io/gh/simonw/datasette/pull/1656?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) (5d9883f) into [main](https://codecov.io/gh/simonw/datasette/commit/c10cd48baf106659bf3f129ad7bfb2226be73821?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) (c10cd48) will **not change** coverage.\n> The diff coverage is `n/a`.\n\n```diff\n@@ Coverage Diff @@\n## main #1656 +/- ##\n=======================================\n Coverage 92.06% 92.06% \n=======================================\n Files 34 34 \n Lines 4576 4576 \n=======================================\n Hits 4213 4213 \n Misses 363 363 \n```\n\n\n\n------\n\n[Continue to review full report at Codecov](https://codecov.io/gh/simonw/datasette/pull/1656?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n> `\u0394 = absolute (impact)`, `\u00f8 = not affected`, `? = missing data`\n> Powered by [Codecov](https://codecov.io/gh/simonw/datasette/pull/1656?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Last update [c10cd48...5d9883f](https://codecov.io/gh/simonw/datasette/pull/1656?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1168357113, "label": "Update pytest requirement from <7.1.0,>=5.2.2 to >=5.2.2,<7.2.0"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1657#issuecomment-1068181623", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1657", "id": 1068181623, "node_id": "IC_kwDOBm6k_c4_qyh3", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T16:18:23Z", "updated_at": "2022-03-15T16:18:23Z", "author_association": "OWNER", "body": "Moving this to a PR.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1168995756, "label": "Tilde encoding: use ~ instead of - for dash-encoding"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1659#issuecomment-1068193035", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1659", "id": 1068193035, "node_id": "IC_kwDOBm6k_c4_q1UL", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2022-03-15T16:28:25Z", "updated_at": "2022-03-15T17:56:09Z", "author_association": "NONE", "body": "# [Codecov](https://codecov.io/gh/simonw/datasette/pull/1659?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) Report\n> Merging [#1659](https://codecov.io/gh/simonw/datasette/pull/1659?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) (85dde28) into [main](https://codecov.io/gh/simonw/datasette/commit/c10cd48baf106659bf3f129ad7bfb2226be73821?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) (c10cd48) will **increase** coverage by `0.03%`.\n> The diff coverage is `100.00%`.\n\n> :exclamation: Current head 85dde28 differs from pull request most recent head 99b8263. Consider uploading reports for the commit 99b8263 to get more accurate results\n\n```diff\n@@ Coverage Diff @@\n## main #1659 +/- ##\n==========================================\n+ Coverage 92.06% 92.10% +0.03% \n==========================================\n Files 34 34 \n Lines 4576 4584 +8 \n==========================================\n+ Hits 4213 4222 +9 \n+ Misses 363 362 -1 \n```\n\n\n| [Impacted Files](https://codecov.io/gh/simonw/datasette/pull/1659?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison) | Coverage \u0394 | |\n|---|---|---|\n| [datasette/app.py](https://codecov.io/gh/simonw/datasette/pull/1659/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL2FwcC5weQ==) | `94.36% <100.00%> (\u00f8)` | |\n| [datasette/url\\_builder.py](https://codecov.io/gh/simonw/datasette/pull/1659/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3VybF9idWlsZGVyLnB5) | `100.00% <100.00%> (\u00f8)` | |\n| [datasette/utils/\\_\\_init\\_\\_.py](https://codecov.io/gh/simonw/datasette/pull/1659/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3V0aWxzL19faW5pdF9fLnB5) | `94.84% <100.00%> (-0.13%)` | :arrow_down: |\n| [datasette/views/base.py](https://codecov.io/gh/simonw/datasette/pull/1659/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3ZpZXdzL2Jhc2UucHk=) | `96.07% <100.00%> (+0.58%)` | :arrow_up: |\n| [datasette/views/table.py](https://codecov.io/gh/simonw/datasette/pull/1659/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison#diff-ZGF0YXNldHRlL3ZpZXdzL3RhYmxlLnB5) | `96.21% <100.00%> (+0.01%)` | :arrow_up: |\n\n------\n\n[Continue to review full report at Codecov](https://codecov.io/gh/simonw/datasette/pull/1659?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison)\n> `\u0394 = absolute (impact)`, `\u00f8 = not affected`, `? = missing data`\n> Powered by [Codecov](https://codecov.io/gh/simonw/datasette/pull/1659?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Last update [c10cd48...99b8263](https://codecov.io/gh/simonw/datasette/pull/1659?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Simon+Willison).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1169895600, "label": "Tilde encoding"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1657#issuecomment-1068296042", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1657", "id": 1068296042, "node_id": "IC_kwDOBm6k_c4_rOdq", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T18:05:54Z", "updated_at": "2022-03-15T18:05:54Z", "author_association": "OWNER", "body": "Documentation: https://docs.datasette.io/en/latest/internals.html#tilde-encoding", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1168995756, "label": "Tilde encoding: use ~ instead of - for dash-encoding"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1657#issuecomment-1068306916", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1657", "id": 1068306916, "node_id": "IC_kwDOBm6k_c4_rRHk", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T18:15:11Z", "updated_at": "2022-03-15T18:15:11Z", "author_association": "OWNER", "body": "Now live here: https://fivethirtyeight.datasettes.com/fivethirtyeight/august-senate-polls~2Faugust_senate_polls", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1168995756, "label": "Tilde encoding: use ~ instead of - for dash-encoding"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1657#issuecomment-1068318454", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1657", "id": 1068318454, "node_id": "IC_kwDOBm6k_c4_rT72", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T18:25:11Z", "updated_at": "2022-03-15T18:25:11Z", "author_association": "OWNER", "body": "Demo:\r\n\r\n- https://latest.datasette.io/fixtures/table~2Fwith~2Fslashes~2Ecsv\r\n- https://latest.datasette.io/fixtures/table~2Fwith~2Fslashes~2Ecsv.csv\r\n- https://latest.datasette.io/fixtures/table~2Fwith~2Fslashes~2Ecsv.json", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1168995756, "label": "Tilde encoding: use ~ instead of - for dash-encoding"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1651#issuecomment-1068319530", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1651", "id": 1068319530, "node_id": "IC_kwDOBm6k_c4_rUMq", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T18:25:42Z", "updated_at": "2022-03-15T18:25:42Z", "author_association": "OWNER", "body": "Done:\r\n\r\n- https://latest.datasette.io/fixtures/table~2Fwith~2Fslashes~2Ecsv\r\n- https://latest.datasette.io/fixtures/table~2Fwith~2Fslashes~2Ecsv.csv\r\n- https://latest.datasette.io/fixtures/table~2Fwith~2Fslashes~2Ecsv.json", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1161584460, "label": "Get rid of the no-longer necessary ?_format=json hack for tables called x.json"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1062#issuecomment-1068327874", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1062", "id": 1068327874, "node_id": "IC_kwDOBm6k_c4_rWPC", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T18:33:49Z", "updated_at": "2022-03-15T18:33:49Z", "author_association": "OWNER", "body": "I can get regular `.json` to stream too, using the pattern described in this TIL: https://til.simonwillison.net/python/output-json-array-streaming", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 732674148, "label": "Refactor .csv to be an output renderer - and teach register_output_renderer to stream all rows"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1660#issuecomment-1068415072", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1660", "id": 1068415072, "node_id": "IC_kwDOBm6k_c4_rrhg", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T20:02:36Z", "updated_at": "2022-03-15T20:02:36Z", "author_association": "OWNER", "body": "This is one of the worst bits - the `get_format()` method on the `DataView` base class actually modifies `args`, including removing keys! Really confusing: https://github.com/simonw/datasette/blob/77a904fea14f743560af9cc668146339bdbbd0a9/datasette/views/base.py#L454-L482\r\n\r\nThen `BaseView` has some surprising responsibilities. It has a utility helper for checking multiple permissions at once:\r\n\r\nhttps://github.com/simonw/datasette/blob/77a904fea14f743560af9cc668146339bdbbd0a9/datasette/views/base.py#L81-L105\r\n\r\nAnd its own render method that adds extra stuff to the template context and handles the rel: alternate header:\r\n\r\nhttps://github.com/simonw/datasette/blob/77a904fea14f743560af9cc668146339bdbbd0a9/datasette/views/base.py#L131-L157\r\n\r\nThen `DataView` does all sorts of weird stuff - from handling database hashes (which I want to remove, see #647):\r\n\r\nhttps://github.com/simonw/datasette/blob/77a904fea14f743560af9cc668146339bdbbd0a9/datasette/views/base.py#L206-L219\r\n\r\nTo streaming CSV responses: https://github.com/simonw/datasette/blob/77a904fea14f743560af9cc668146339bdbbd0a9/datasette/views/base.py#L286-L308\r\n\r\nTo handling SQLite exceptions: https://github.com/simonw/datasette/blob/77a904fea14f743560af9cc668146339bdbbd0a9/datasette/views/base.py#L514-L526\r\n\r\nAnd a ton more. It' s a big mess.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1170144879, "label": "Refactor and simplify Datasette routing and views"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1660#issuecomment-1068417357", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1660", "id": 1068417357, "node_id": "IC_kwDOBm6k_c4_rsFN", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T20:05:08Z", "updated_at": "2022-03-15T20:05:08Z", "author_association": "OWNER", "body": "`DataView` is used as the base class for:\r\n\r\n- `DatabaseView`\r\n- `DatabaseDownload` (just so the permissions checks can be called)\r\n- `QueryView` - which isn't routed to directly, it's called from `DatabaseView` if `?sql=` is available and `TableView` for canned queries\r\n- `RowTableShared` which is the base class for `TableView` and `RowView`", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1170144879, "label": "Refactor and simplify Datasette routing and views"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1660#issuecomment-1068418619", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1660", "id": 1068418619, "node_id": "IC_kwDOBm6k_c4_rsY7", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T20:06:19Z", "updated_at": "2022-03-15T20:06:19Z", "author_association": "OWNER", "body": "Also related:\r\n- #878\r\n- #1512\r\n- #1518 \r\n- #870 ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1170144879, "label": "Refactor and simplify Datasette routing and views"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1510#issuecomment-1068443509", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1510", "id": 1068443509, "node_id": "IC_kwDOBm6k_c4_ryd1", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T20:35:29Z", "updated_at": "2022-03-15T20:35:29Z", "author_association": "OWNER", "body": "If I set a rule that everything available in the template context MUST also be available via the JSON API (maybe through an extras mechanism) I can combine this with API documentation and solve both at once.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1054244712, "label": "Datasette 1.0 documented template context (maybe via API docs)"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1509#issuecomment-1068444767", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1509", "id": 1068444767, "node_id": "IC_kwDOBm6k_c4_ryxf", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T20:37:03Z", "updated_at": "2022-03-15T20:37:03Z", "author_association": "OWNER", "body": "Idea: I could add Pydantic https://pydantic-docs.helpmanual.io/usage/schema/ as an optional test dependency and use it to generate JSON schemas and run validation against examples in the API documentation.\r\n\r\nMaybe generate API documentation from it too?", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1054243511, "label": "Datasette 1.0 JSON API (and documentation)"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1509#issuecomment-1068445412", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1509", "id": 1068445412, "node_id": "IC_kwDOBm6k_c4_ry7k", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T20:37:50Z", "updated_at": "2022-03-15T20:38:56Z", "author_association": "OWNER", "body": "... maybe Datasette itself should include interactive API documentation, in addition to documenting it in the manual?\r\n\r\n`/dbname/table/-/apidocs` could return documentation about the specific table, taking into account columns and types.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1054243511, "label": "Datasette 1.0 JSON API (and documentation)"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/857#issuecomment-1068450483", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/857", "id": 1068450483, "node_id": "IC_kwDOBm6k_c4_r0Kz", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T20:43:55Z", "updated_at": "2022-03-15T20:43:55Z", "author_association": "OWNER", "body": "Dupe of #1510.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 642297505, "label": "Comprehensive documentation for variables made available to templates"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1439#issuecomment-1068461449", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1439", "id": 1068461449, "node_id": "IC_kwDOBm6k_c4_r22J", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T20:51:26Z", "updated_at": "2022-03-15T20:51:26Z", "author_association": "OWNER", "body": "I'm happy with this now that I've landed Tilde encoding in #1657.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 973139047, "label": "Rethink how .ext formats (v.s. ?_format=) works before 1.0"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/647#issuecomment-1068539404", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/647", "id": 1068539404, "node_id": "IC_kwDOBm6k_c4_sJ4M", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T22:49:01Z", "updated_at": "2022-03-15T22:49:01Z", "author_association": "OWNER", "body": "I shipped the first version of this: https://github.com/simonw/datasette-hashed-urls\r\n\r\nNext step: test it with a live demo:\r\n- https://github.com/simonw/datasette-hashed-urls/issues/2", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 531755959, "label": "Move hashed URL mode out to a plugin"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/647#issuecomment-1068552696", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/647", "id": 1068552696, "node_id": "IC_kwDOBm6k_c4_sNH4", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T23:13:06Z", "updated_at": "2022-03-15T23:13:06Z", "author_association": "OWNER", "body": "The plugin works. I'm going to implement one last feature for it:\r\n\r\n- https://github.com/simonw/datasette-hashed-urls/issues/3\r\n\r\nThen I can remove hashed URL mode in a separate issue.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 531755959, "label": "Move hashed URL mode out to a plugin"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1661#issuecomment-1068553454", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1661", "id": 1068553454, "node_id": "IC_kwDOBm6k_c4_sNTu", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T23:14:37Z", "updated_at": "2022-03-15T23:14:37Z", "author_association": "OWNER", "body": "This is going to simplify the code in the various view classes substantially:\r\n- #1660", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1170355774, "label": "Remove Hashed URL mode"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1661#issuecomment-1068554827", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1661", "id": 1068554827, "node_id": "IC_kwDOBm6k_c4_sNpL", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-03-15T23:16:58Z", "updated_at": "2022-03-15T23:18:58Z", "author_association": "OWNER", "body": "If you attempt to use the [old setting](https://docs.datasette.io/en/stable/settings.html#hash-urls):\r\n\r\n datasette mydatabase.db --setting hash_urls 1\r\n\r\nIt should error with a message saying that the feature has been moved to a plugin.\r\n\r\nI'll do this with a `deprecated_settings` mechanism so the error can be detected even though `datasette --help-settings` will no longer return the setting.\r\n\r\nhttps://github.com/simonw/datasette/blob/77a904fea14f743560af9cc668146339bdbbd0a9/datasette/cli.py#L479-L489", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1170355774, "label": "Remove Hashed URL mode"}, "performed_via_github_app": null}