issue_comments
24 rows where "created_at" is on date 2022-07-15 and user = 9599
This data as json, CSV (advanced)
Suggested facets: reactions, created_at (date)
id ▼ | html_url | issue_url | node_id | user | created_at | updated_at | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
1185925081 | https://github.com/simonw/datasette/issues/1770#issuecomment-1185925081 | https://api.github.com/repos/simonw/datasette/issues/1770 | IC_kwDOBm6k_c5Gr8fZ | simonw 9599 | 2022-07-15T20:55:41Z | 2022-07-15T20:56:16Z | OWNER | I think the hook gets called any time any exception makes it to this function: https://github.com/simonw/datasette/blob/950cc7677f65aa2543067b3bbfc2b6acb98b62c8/datasette/app.py#L1374-L1440 Multiple plugins can register for the hook. If they return a `Response` then that's returned to the user - if they return `None` then they can quietly do something with the error (log it to Sentry for example) and let some other handler return a response. I think Datasette should have a default plugin hook implementation which returns the 500 error page. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | `handle_exception` plugin hook for custom error handling 1306492437 | |
1185929360 | https://github.com/simonw/datasette/issues/1770#issuecomment-1185929360 | https://api.github.com/repos/simonw/datasette/issues/1770 | IC_kwDOBm6k_c5Gr9iQ | simonw 9599 | 2022-07-15T20:58:11Z | 2022-07-15T20:58:11Z | OWNER | Proposed hook design: ```python @hookspec def handle_exception(datasette, request, exception): """Handle an uncaught exception""" ``` It takes `request` in case it needs to render a template and pass the request to it. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | `handle_exception` plugin hook for custom error handling 1306492437 | |
1185931417 | https://github.com/simonw/datasette/issues/1770#issuecomment-1185931417 | https://api.github.com/repos/simonw/datasette/issues/1770 | IC_kwDOBm6k_c5Gr-CZ | simonw 9599 | 2022-07-15T20:59:25Z | 2022-07-15T20:59:25Z | OWNER | ... maybe it should take `send`? But then how would plugins know that another plugin hadn't already used `send` to send a response, and avoid two trying to send at the same time? | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | `handle_exception` plugin hook for custom error handling 1306492437 | |
1185933972 | https://github.com/simonw/datasette/issues/1770#issuecomment-1185933972 | https://api.github.com/repos/simonw/datasette/issues/1770 | IC_kwDOBm6k_c5Gr-qU | simonw 9599 | 2022-07-15T21:00:56Z | 2022-07-15T21:00:56Z | OWNER | It's weird to return a `Response` though because the code in question lives in `DatasetteRouter` which currently works outside of the layer where responses happen - everything in that class at the moment works using `send` directly. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | `handle_exception` plugin hook for custom error handling 1306492437 | |
1185935764 | https://github.com/simonw/datasette/issues/1770#issuecomment-1185935764 | https://api.github.com/repos/simonw/datasette/issues/1770 | IC_kwDOBm6k_c5Gr_GU | simonw 9599 | 2022-07-15T21:02:00Z | 2022-07-15T21:02:12Z | OWNER | Returning a `Response` is by far the most intuitive way to design this though. Plugin authors shouldn't care that `DatasetteRouter` (an undocumented internal API of Datasette) doesn't currently handle responses. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | `handle_exception` plugin hook for custom error handling 1306492437 | |
1185937664 | https://github.com/simonw/datasette/issues/1770#issuecomment-1185937664 | https://api.github.com/repos/simonw/datasette/issues/1770 | IC_kwDOBm6k_c5Gr_kA | simonw 9599 | 2022-07-15T21:03:09Z | 2022-07-17T22:25:44Z | OWNER | Design decision: ```python @hookspec def handle_exception(datasette, request, exception): """Handle an uncaught exception. Can return a Response or None.""" ``` It will also support returning an awaitable, using the `await_me_maybe` pattern. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | `handle_exception` plugin hook for custom error handling 1306492437 | |
1185939664 | https://github.com/simonw/datasette/issues/1770#issuecomment-1185939664 | https://api.github.com/repos/simonw/datasette/issues/1770 | IC_kwDOBm6k_c5GsADQ | simonw 9599 | 2022-07-15T21:04:19Z | 2022-07-15T21:04:19Z | OWNER | I'll implement this hook and then release it as `0.62a1`. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | `handle_exception` plugin hook for custom error handling 1306492437 | |
1185943887 | https://github.com/simonw/datasette/issues/1770#issuecomment-1185943887 | https://api.github.com/repos/simonw/datasette/issues/1770 | IC_kwDOBm6k_c5GsBFP | simonw 9599 | 2022-07-15T21:07:53Z | 2022-07-15T21:07:53Z | OWNER | In `DatasetteRouter` I'm going to rename `handle_500` to `handle_exception` because it already deals with error codes other than 500 (`Forbidden` exceptions become 403 and `Base400` become 400). | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | `handle_exception` plugin hook for custom error handling 1306492437 | |
1185944799 | https://github.com/simonw/datasette/issues/1770#issuecomment-1185944799 | https://api.github.com/repos/simonw/datasette/issues/1770 | IC_kwDOBm6k_c5GsBTf | simonw 9599 | 2022-07-15T21:09:08Z | 2022-07-15T21:09:08Z | OWNER | Had to lookup that `Base400` thing: https://github.com/simonw/datasette/blob/950cc7677f65aa2543067b3bbfc2b6acb98b62c8/datasette/utils/asgi.py#L16-L29 | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | `handle_exception` plugin hook for custom error handling 1306492437 | |
1185970114 | https://github.com/simonw/sqlite-utils/issues/449#issuecomment-1185970114 | https://api.github.com/repos/simonw/sqlite-utils/issues/449 | IC_kwDOCGYnMM5GsHfC | simonw 9599 | 2022-07-15T21:46:13Z | 2022-07-15T21:46:13Z | OWNER | Documentation: - https://sqlite-utils.datasette.io/en/latest/python-api.html#duplicating-tables - https://sqlite-utils.datasette.io/en/latest/reference.html#sqlite_utils.db.Table.duplicate | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Utilities for duplicating tables and creating a table with the results of a query 1279863844 | |
1185971600 | https://github.com/simonw/sqlite-utils/issues/454#issuecomment-1185971600 | https://api.github.com/repos/simonw/sqlite-utils/issues/454 | IC_kwDOCGYnMM5GsH2Q | simonw 9599 | 2022-07-15T21:48:23Z | 2022-07-15T21:48:23Z | OWNER | Documentation: - https://sqlite-utils.datasette.io/en/latest/cli.html#duplicating-tables - https://sqlite-utils.datasette.io/en/latest/cli-reference.html#duplicate | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | CLI command for duplicating tables 1306548397 | |
1185974145 | https://github.com/simonw/sqlite-utils/issues/453#issuecomment-1185974145 | https://api.github.com/repos/simonw/sqlite-utils/issues/453 | IC_kwDOCGYnMM5GsIeB | simonw 9599 | 2022-07-15T21:52:18Z | 2022-07-15T21:52:18Z | OWNER | I should warn you that this isn't a supported API - I reserve the right to change how it works between release without a major version bump, because it's not part of the documented API surface. You'll be fine if you pin to exact versions of the library though! You may find this recently-documented function useful though: https://sqlite-utils.datasette.io/en/latest/python-api.html#reading-rows-from-a-file See: - #443 I'm going to close this issue for the moment, but if anyone wants to submit a PR that cleans up this I'll happily review it. | {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 'unclosed file' warning when using insert_upsert_implementation from Python 1303169663 | |
1185975132 | https://github.com/simonw/sqlite-utils/issues/451#issuecomment-1185975132 | https://api.github.com/repos/simonw/sqlite-utils/issues/451 | IC_kwDOCGYnMM5GsItc | simonw 9599 | 2022-07-15T21:53:42Z | 2022-07-15T21:53:42Z | OWNER | Documentation can go here: https://sqlite-utils.datasette.io/en/stable/reference.html#sqlite-utils-utils | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Make sqlite_utils.utils.chunks a documented function 1298531653 | |
1185982012 | https://github.com/simonw/sqlite-utils/issues/450#issuecomment-1185982012 | https://api.github.com/repos/simonw/sqlite-utils/issues/450 | IC_kwDOCGYnMM5GsKY8 | simonw 9599 | 2022-07-15T22:02:59Z | 2022-07-15T22:03:49Z | OWNER | From https://sqlite-utils.datasette.io/en/latest/cli-reference.html Commands that currently have an `--ignore` flag, and their descriptions: - `insert`: Ignore records if pk already exists - `create-table`: If table already exists, do nothing - `add-foreign-key`: If foreign key already exists, do nothing - `drop-table`: *description is missing* - `create-view`: If view already exists, do nothing - `drop-view`: *description is missing* And `create-index` has: - `--if-not-exists`: Ignore if index already exists | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Add --ignore option to more commands 1292060682 | |
1185983894 | https://github.com/simonw/sqlite-utils/issues/450#issuecomment-1185983894 | https://api.github.com/repos/simonw/sqlite-utils/issues/450 | IC_kwDOCGYnMM5GsK2W | simonw 9599 | 2022-07-15T22:06:29Z | 2022-07-15T22:37:20Z | OWNER | Commands that could have `--ignore` added to them: - [x] `enable-fts` - [x] `disable-fts` (not doing) - [x] `add-column` - [x] `add-foreign-keys` (decided not to do this) - [x] `duplicate` - [x] `add-geometry-column` (decided not to do this) - [x] `create-spatial-index` (decided not to do this) | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Add --ignore option to more commands 1292060682 | |
1185987117 | https://github.com/simonw/sqlite-utils/issues/451#issuecomment-1185987117 | https://api.github.com/repos/simonw/sqlite-utils/issues/451 | IC_kwDOCGYnMM5GsLot | simonw 9599 | 2022-07-15T22:09:33Z | 2022-07-15T22:09:33Z | OWNER | Documentation: https://sqlite-utils.datasette.io/en/latest/reference.html#sqlite-utils-utils-chunks | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Make sqlite_utils.utils.chunks a documented function 1298531653 | |
1185988277 | https://github.com/simonw/sqlite-utils/issues/450#issuecomment-1185988277 | https://api.github.com/repos/simonw/sqlite-utils/issues/450 | IC_kwDOCGYnMM5GsL61 | simonw 9599 | 2022-07-15T22:11:52Z | 2022-07-15T22:11:52Z | OWNER | For `enable-fts` I should use `--replace` instead, since that matches how the Python API works: https://github.com/simonw/sqlite-utils/blob/9dd4cf891d9f4565019e030ddc712507ac87b998/sqlite_utils/db.py#L2088-L2106 | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Add --ignore option to more commands 1292060682 | |
1185988480 | https://github.com/simonw/sqlite-utils/issues/450#issuecomment-1185988480 | https://api.github.com/repos/simonw/sqlite-utils/issues/450 | IC_kwDOCGYnMM5GsL-A | simonw 9599 | 2022-07-15T22:12:20Z | 2022-07-15T22:12:20Z | OWNER | `disable-fts` already fails silently if the table doesn't have FTS setup. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Add --ignore option to more commands 1292060682 | |
1185993791 | https://github.com/simonw/sqlite-utils/issues/450#issuecomment-1185993791 | https://api.github.com/repos/simonw/sqlite-utils/issues/450 | IC_kwDOCGYnMM5GsNQ_ | simonw 9599 | 2022-07-15T22:23:02Z | 2022-07-15T22:23:02Z | OWNER | `create-spatial-index` is tricky. For consistency with `create-index` it should really use `--if-not-exists` - but under the hood it's not using `IF NOT EXISTS` because those indexes are created using `select CreateSpatialIndex(...)`. Really this highlights that `--if-not-exists` is a bad name for that option on `create-index`. I'm tempted to add `--ignore` to `create-index` and mark `--if-not-exists` as deprecated - though it will still work because I don't want to release a major version bump. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Add --ignore option to more commands 1292060682 | |
1185994282 | https://github.com/simonw/sqlite-utils/issues/450#issuecomment-1185994282 | https://api.github.com/repos/simonw/sqlite-utils/issues/450 | IC_kwDOCGYnMM5GsNYq | simonw 9599 | 2022-07-15T22:24:12Z | 2022-07-15T22:24:12Z | OWNER | I can do this for `--create-index` instead: ``` Options: --name TEXT Explicit name for the new index --unique Make this a unique index --if-not-exists, --ignore Ignore if index already exists --analyze Run ANALYZE after creating the index --load-extension TEXT SQLite extensions to load -h, --help Show this message and exit. ``` That supports both names for the option. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Add --ignore option to more commands 1292060682 | |
1185997860 | https://github.com/simonw/sqlite-utils/issues/450#issuecomment-1185997860 | https://api.github.com/repos/simonw/sqlite-utils/issues/450 | IC_kwDOCGYnMM5GsOQk | simonw 9599 | 2022-07-15T22:32:51Z | 2022-07-15T22:32:51Z | OWNER | `add-foreign-keys` is enough of a power-feature that I'm happy not to add this there. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Add --ignore option to more commands 1292060682 | |
1186001408 | https://github.com/simonw/sqlite-utils/issues/450#issuecomment-1186001408 | https://api.github.com/repos/simonw/sqlite-utils/issues/450 | IC_kwDOCGYnMM5GsPIA | simonw 9599 | 2022-07-15T22:37:40Z | 2022-07-15T22:37:40Z | OWNER | I'm going to skip `add-geometry-column` and `create-spatial-index` as well. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Add --ignore option to more commands 1292060682 | |
1186002019 | https://github.com/simonw/sqlite-utils/issues/450#issuecomment-1186002019 | https://api.github.com/repos/simonw/sqlite-utils/issues/450 | IC_kwDOCGYnMM5GsPRj | simonw 9599 | 2022-07-15T22:39:09Z | 2022-07-15T22:39:09Z | OWNER | Here are all of the changes I made in this issue: https://github.com/simonw/sqlite-utils/compare/e10536c7f59abbb785f092bf83c4ab94c00e31a3...b9a89a0f2c3559989efe65f25a6e1f8fa76fe8b0 | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Add --ignore option to more commands 1292060682 | |
1186002560 | https://github.com/simonw/sqlite-utils/issues/448#issuecomment-1186002560 | https://api.github.com/repos/simonw/sqlite-utils/issues/448 | IC_kwDOCGYnMM5GsPaA | simonw 9599 | 2022-07-15T22:40:40Z | 2022-07-15T22:40:40Z | OWNER | This is very strange. GitHub Actions CI here runs against Windows and installs OK. Marking this as "Help wanted" to see if anyone can figure out what's going on here. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Reading rows from a file => AttributeError: '_io.StringIO' object has no attribute 'readinto' 1279144769 |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [issue_comments] ( [html_url] TEXT, [issue_url] TEXT, [id] INTEGER PRIMARY KEY, [node_id] TEXT, [user] INTEGER REFERENCES [users]([id]), [created_at] TEXT, [updated_at] TEXT, [author_association] TEXT, [body] TEXT, [reactions] TEXT, [issue] INTEGER REFERENCES [issues]([id]) , [performed_via_github_app] TEXT); CREATE INDEX [idx_issue_comments_issue] ON [issue_comments] ([issue]); CREATE INDEX [idx_issue_comments_user] ON [issue_comments] ([user]);