issue_comments
8,883 rows where user = 9599 sorted by updated_at descending
This data as json, CSV (advanced)
user 1
- simonw · 5,391 ✖
id | html_url | issue_url | node_id | user | created_at | updated_at ▲ | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
898051645 | https://github.com/simonw/datasette/issues/942#issuecomment-898051645 | https://api.github.com/repos/simonw/datasette/issues/942 | IC_kwDOBm6k_c41hy49 | simonw 9599 | 2021-08-13T00:02:25Z | 2021-08-13T00:02:25Z | OWNER | And on mobile: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support column descriptions in metadata.json 681334912 | |
898050457 | https://github.com/simonw/datasette/issues/942#issuecomment-898050457 | https://api.github.com/repos/simonw/datasette/issues/942 | IC_kwDOBm6k_c41hymZ | simonw 9599 | 2021-08-12T23:59:53Z | 2021-08-12T23:59:53Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support column descriptions in metadata.json 681334912 | ||
898037650 | https://github.com/simonw/datasette/issues/942#issuecomment-898037650 | https://api.github.com/repos/simonw/datasette/issues/942 | IC_kwDOBm6k_c41hveS | simonw 9599 | 2021-08-12T23:23:54Z | 2021-08-12T23:23:54Z | OWNER | I like this enough that I'm going to ship it as an alpha and try it out on a couple of live projects. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support column descriptions in metadata.json 681334912 | |
898037456 | https://github.com/simonw/datasette/issues/942#issuecomment-898037456 | https://api.github.com/repos/simonw/datasette/issues/942 | IC_kwDOBm6k_c41hvbQ | simonw 9599 | 2021-08-12T23:23:34Z | 2021-08-12T23:23:34Z | OWNER | Prototype with a ```diff diff --git a/datasette/static/app.css b/datasette/static/app.css index c6be1e9..bf068fd 100644 --- a/datasette/static/app.css +++ b/datasette/static/app.css @@ -836,6 +841,16 @@ svg.dropdown-menu-icon { background-repeat: no-repeat; } +dl.column-descriptions dt { + font-weight: bold; +} +dl.column-descriptions dd { + padding-left: 1.5em; + white-space: pre-wrap; + line-height: 1.1em; + color: #666; +} + .anim-scale-in { animation-name: scale-in; animation-duration: 0.15s; diff --git a/datasette/templates/table.html b/datasette/templates/table.html index 211352b..466e8a4 100644 --- a/datasette/templates/table.html +++ b/datasette/templates/table.html @@ -51,6 +51,14 @@ {% block description_source_license %}{% include "_description_source_license.html" %}{% endblock %} +{% if metadata.columns %} +<dl class="column-descriptions"> + {% for column_name, column_description in metadata.columns.items() %} + <dt>{{ column_name }}</dt><dd>{{ column_description }}</dd> + {% endfor %} +</dl> +{% endif %} + {% if filtered_table_rows_count or human_description_en %} {% if filtered_table_rows_count or filtered_table_rows_count == 0 %}{{ "{:,}".format(filtered_table_rows_count) }} row{% if filtered_table_rows_count == 1 %}{% else %}s{% endif %}{% endif %} {% if human_description_en %}{{ human_description_en }}{% endif %} ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support column descriptions in metadata.json 681334912 | |
898022235 | https://github.com/simonw/datasette/issues/942#issuecomment-898022235 | https://api.github.com/repos/simonw/datasette/issues/942 | IC_kwDOBm6k_c41hrtb | simonw 9599 | 2021-08-12T22:52:23Z | 2021-08-12T22:52:23Z | OWNER | I like this. Need to solve for mobile though where the cog menu isn't visible - I think I'll do that with a definition list at the top of the page. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support column descriptions in metadata.json 681334912 | |
898021895 | https://github.com/simonw/datasette/issues/942#issuecomment-898021895 | https://api.github.com/repos/simonw/datasette/issues/942 | IC_kwDOBm6k_c41hroH | simonw 9599 | 2021-08-12T22:51:36Z | 2021-08-12T22:51:36Z | OWNER | Prototype:
var DROPDOWN_ICON_SVG = ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support column descriptions in metadata.json 681334912 | |
897996296 | https://github.com/simonw/datasette/issues/942#issuecomment-897996296 | https://api.github.com/repos/simonw/datasette/issues/942 | IC_kwDOBm6k_c41hlYI | simonw 9599 | 2021-08-12T22:01:36Z | 2021-08-12T22:01:36Z | OWNER | I'm going with If I decide to make I'm OK with having both |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support column descriptions in metadata.json 681334912 | |
897960049 | https://github.com/simonw/datasette/issues/1429#issuecomment-897960049 | https://api.github.com/repos/simonw/datasette/issues/1429 | IC_kwDOBm6k_c41hchx | simonw 9599 | 2021-08-12T20:53:04Z | 2021-08-12T20:53:04Z | OWNER | Maybe something like this:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
UI for setting `?_size=max` on table page 969548935 | |
896381184 | https://github.com/simonw/sqlite-utils/issues/311#issuecomment-896381184 | https://api.github.com/repos/simonw/sqlite-utils/issues/311 | IC_kwDOCGYnMM41bbEA | simonw 9599 | 2021-08-10T23:33:33Z | 2021-08-10T23:33:33Z | OWNER | Now live at https://sqlite-utils.datasette.io/en/latest/reference.html TIL from what I learned today here: https://til.simonwillison.net/sphinx/sphinx-autodoc |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add reference documentation generated from docstrings 965102534 | |
896369551 | https://github.com/simonw/sqlite-utils/issues/314#issuecomment-896369551 | https://api.github.com/repos/simonw/sqlite-utils/issues/314 | IC_kwDOCGYnMM41bYOP | simonw 9599 | 2021-08-10T23:06:41Z | 2021-08-10T23:06:41Z | OWNER | I took a big bite out of this when I annotated the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Type signatures for `.create_table()` and `.create_table_sql()` and `.create()` and `Table.__init__` 965210966 | |
896344833 | https://github.com/simonw/sqlite-utils/issues/314#issuecomment-896344833 | https://api.github.com/repos/simonw/sqlite-utils/issues/314 | IC_kwDOCGYnMM41bSMB | simonw 9599 | 2021-08-10T22:07:34Z | 2021-08-10T22:07:34Z | OWNER | Also the I should probably define reusable types for things like |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Type signatures for `.create_table()` and `.create_table_sql()` and `.create()` and `Table.__init__` 965210966 | |
896339144 | https://github.com/simonw/sqlite-utils/issues/315#issuecomment-896339144 | https://api.github.com/repos/simonw/sqlite-utils/issues/315 | IC_kwDOCGYnMM41bQzI | simonw 9599 | 2021-08-10T21:55:41Z | 2021-08-10T21:55:41Z | OWNER | Or should we raise an error if you attempt to call |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`.delete_where()` returns `[]` when it should return self 965440017 | |
896284722 | https://github.com/simonw/sqlite-utils/pull/312#issuecomment-896284722 | https://api.github.com/repos/simonw/sqlite-utils/issues/312 | IC_kwDOCGYnMM41bDgy | simonw 9599 | 2021-08-10T20:08:03Z | 2021-08-10T20:08:21Z | OWNER | Spotted a rogue backtick: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add reference page to documentation using Sphinx autodoc 965143346 | |
896200682 | https://github.com/simonw/sqlite-utils/pull/312#issuecomment-896200682 | https://api.github.com/repos/simonw/sqlite-utils/issues/312 | IC_kwDOCGYnMM41au_q | simonw 9599 | 2021-08-10T18:03:40Z | 2021-08-10T18:03:40Z | OWNER | Adding type signatures to |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add reference page to documentation using Sphinx autodoc 965143346 | |
896186025 | https://github.com/simonw/sqlite-utils/pull/312#issuecomment-896186025 | https://api.github.com/repos/simonw/sqlite-utils/issues/312 | IC_kwDOCGYnMM41arap | simonw 9599 | 2021-08-10T17:42:51Z | 2021-08-10T17:42:51Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add reference page to documentation using Sphinx autodoc 965143346 | ||
896182934 | https://github.com/simonw/sqlite-utils/pull/312#issuecomment-896182934 | https://api.github.com/repos/simonw/sqlite-utils/issues/312 | IC_kwDOCGYnMM41aqqW | simonw 9599 | 2021-08-10T17:38:44Z | 2021-08-10T17:38:44Z | OWNER | From https://docs.readthedocs.io/en/stable/config-file/v2.html#packages it looks like I can tell Read The Docs to run ```yaml version: 2 sphinx: configuration: docs/conf.py python: version: "3.9" install: - method: pip path: . extra_requirements: - docs ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add reference page to documentation using Sphinx autodoc 965143346 | |
896180956 | https://github.com/simonw/sqlite-utils/pull/312#issuecomment-896180956 | https://api.github.com/repos/simonw/sqlite-utils/issues/312 | IC_kwDOCGYnMM41aqLc | simonw 9599 | 2021-08-10T17:35:51Z | 2021-08-10T17:35:51Z | OWNER | Reading the rest of https://sphinx-rtd-tutorial.readthedocs.io/en/latest/sphinx-config.html#autodoc-configuration it suggests using a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add reference page to documentation using Sphinx autodoc 965143346 | |
896175438 | https://github.com/simonw/sqlite-utils/pull/312#issuecomment-896175438 | https://api.github.com/repos/simonw/sqlite-utils/issues/312 | IC_kwDOCGYnMM41ao1O | simonw 9599 | 2021-08-10T17:28:19Z | 2021-08-10T17:28:19Z | OWNER | https://sphinx-rtd-tutorial.readthedocs.io/en/latest/sphinx-config.html#autodoc-configuration says do something like this at the top of
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add reference page to documentation using Sphinx autodoc 965143346 | |
896174456 | https://github.com/simonw/sqlite-utils/pull/312#issuecomment-896174456 | https://api.github.com/repos/simonw/sqlite-utils/issues/312 | IC_kwDOCGYnMM41aol4 | simonw 9599 | 2021-08-10T17:27:01Z | 2021-08-10T17:27:01Z | OWNER | Docs are now building at https://sqlite-utils.datasette.io/en/autodoc/reference.html But there's a problem! The page is semi-blank: I need to teach Read The Docs how to ensure |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add reference page to documentation using Sphinx autodoc 965143346 | |
896156971 | https://github.com/simonw/sqlite-utils/pull/312#issuecomment-896156971 | https://api.github.com/repos/simonw/sqlite-utils/issues/312 | IC_kwDOCGYnMM41akUr | simonw 9599 | 2021-08-10T17:04:22Z | 2021-08-10T17:05:59Z | OWNER | I'm going to get Read The Docs to build the docs for this branch too - on https://readthedocs.org/projects/sqlite-utils/versions/ I am clicking this button: I then set it to "active" (so pushes to the branch will build it) and "hidden" (so it wouldn't show up in search or in the navigation menu). https://docs.readthedocs.io/en/stable/versions.html#version-states |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add reference page to documentation using Sphinx autodoc 965143346 | |
896154028 | https://github.com/simonw/sqlite-utils/pull/312#issuecomment-896154028 | https://api.github.com/repos/simonw/sqlite-utils/issues/312 | IC_kwDOCGYnMM41ajms | simonw 9599 | 2021-08-10T17:01:06Z | 2021-08-10T17:01:06Z | OWNER | On Python 3.6:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add reference page to documentation using Sphinx autodoc 965143346 | |
896152812 | https://github.com/simonw/sqlite-utils/issues/311#issuecomment-896152812 | https://api.github.com/repos/simonw/sqlite-utils/issues/311 | IC_kwDOCGYnMM41ajTs | simonw 9599 | 2021-08-10T16:59:34Z | 2021-08-10T16:59:34Z | OWNER | Work will continue in PR #312. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add reference documentation generated from docstrings 965102534 | |
896149590 | https://github.com/simonw/sqlite-utils/issues/311#issuecomment-896149590 | https://api.github.com/repos/simonw/sqlite-utils/issues/311 | IC_kwDOCGYnMM41aihW | simonw 9599 | 2021-08-10T16:55:36Z | 2021-08-10T16:55:36Z | OWNER | I'm going to use this as an excuse to add a bunch more type signatures too, refs #266. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add reference documentation generated from docstrings 965102534 | |
896131902 | https://github.com/simonw/sqlite-utils/issues/311#issuecomment-896131902 | https://api.github.com/repos/simonw/sqlite-utils/issues/311 | IC_kwDOCGYnMM41aeM- | simonw 9599 | 2021-08-10T16:31:51Z | 2021-08-10T16:31:51Z | OWNER |
Fix was to change it to this:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add reference documentation generated from docstrings 965102534 | |
895622908 | https://github.com/simonw/sqlite-utils/issues/309#issuecomment-895622908 | https://api.github.com/repos/simonw/sqlite-utils/issues/309 | IC_kwDOCGYnMM41Yh78 | simonw 9599 | 2021-08-09T23:40:29Z | 2021-08-09T23:40:29Z | OWNER | TIL about how the stack inspection works: https://til.simonwillison.net/python/find-local-variables-in-exception-traceback |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils insert errors should show SQL and parameters, if possible 963897111 | |
895581038 | https://github.com/simonw/sqlite-utils/issues/309#issuecomment-895581038 | https://api.github.com/repos/simonw/sqlite-utils/issues/309 | IC_kwDOCGYnMM41YXtu | simonw 9599 | 2021-08-09T22:03:54Z | 2021-08-09T23:39:53Z | OWNER | Steps to reproduce:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils insert errors should show SQL and parameters, if possible 963897111 | |
895592507 | https://github.com/simonw/sqlite-utils/issues/309#issuecomment-895592507 | https://api.github.com/repos/simonw/sqlite-utils/issues/309 | IC_kwDOCGYnMM41Yag7 | simonw 9599 | 2021-08-09T22:26:28Z | 2021-08-09T22:33:48Z | OWNER | Demo:
```
$ echo '{"v": 34223049823094832094802398430298048240}' | sqlite-utils insert /tmp/blah.db row - sql = INSERT INTO [row] ([v]) VALUES (?); parameters = [34223049823094832094802398430298048240] ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils insert errors should show SQL and parameters, if possible 963897111 | |
895587441 | https://github.com/simonw/sqlite-utils/issues/309#issuecomment-895587441 | https://api.github.com/repos/simonw/sqlite-utils/issues/309 | IC_kwDOCGYnMM41YZRx | simonw 9599 | 2021-08-09T22:15:45Z | 2021-08-09T22:15:45Z | OWNER | ``` OverflowError: Python int too large to convert to SQLite INTEGER
|
{ "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils insert errors should show SQL and parameters, if possible 963897111 | |
895587282 | https://github.com/simonw/sqlite-utils/issues/309#issuecomment-895587282 | https://api.github.com/repos/simonw/sqlite-utils/issues/309 | IC_kwDOCGYnMM41YZPS | simonw 9599 | 2021-08-09T22:15:25Z | 2021-08-09T22:15:25Z | OWNER | I'm going to use a bit of a dirty trick for this one: I'm going to recursively inspect the stack on an error and try to find the That way I can handle this all at the CLI layer without changing the exceptions that are being raised by the Python library. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils insert errors should show SQL and parameters, if possible 963897111 | |
895577012 | https://github.com/simonw/sqlite-utils/issues/309#issuecomment-895577012 | https://api.github.com/repos/simonw/sqlite-utils/issues/309 | IC_kwDOCGYnMM41YWu0 | simonw 9599 | 2021-08-09T21:55:52Z | 2021-08-09T21:59:03Z | OWNER | Yeah this error message could certainly be more helpful. I thought |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils insert errors should show SQL and parameters, if possible 963897111 | |
895572309 | https://github.com/simonw/sqlite-utils/issues/310#issuecomment-895572309 | https://api.github.com/repos/simonw/sqlite-utils/issues/310 | IC_kwDOCGYnMM41YVlV | simonw 9599 | 2021-08-09T21:46:15Z | 2021-08-09T21:46:15Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`sqlite-utils insert --flatten` option to flatten nested JSON 964400482 | ||
895571420 | https://github.com/simonw/sqlite-utils/issues/310#issuecomment-895571420 | https://api.github.com/repos/simonw/sqlite-utils/issues/310 | IC_kwDOCGYnMM41YVXc | simonw 9599 | 2021-08-09T21:44:38Z | 2021-08-09T21:44:38Z | OWNER | When I ship this I should update the TILs at https://til.simonwillison.net/cloudrun/tailing-cloud-run-request-logs and https://til.simonwillison.net/jq/flatten-nested-json-objects-jq to reference it. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`sqlite-utils insert --flatten` option to flatten nested JSON 964400482 | |
895522818 | https://github.com/simonw/datasette/issues/1426#issuecomment-895522818 | https://api.github.com/repos/simonw/datasette/issues/1426 | IC_kwDOBm6k_c41YJgC | simonw 9599 | 2021-08-09T20:34:10Z | 2021-08-09T20:34:10Z | OWNER | At the very least Datasette should serve a blank |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Manage /robots.txt in Datasette core, block robots by default 964322136 | |
895510773 | https://github.com/simonw/datasette/issues/1426#issuecomment-895510773 | https://api.github.com/repos/simonw/datasette/issues/1426 | IC_kwDOBm6k_c41YGj1 | simonw 9599 | 2021-08-09T20:14:50Z | 2021-08-09T20:19:22Z | OWNER | https://twitter.com/mal/status/1424825895139876870
That's another aspect of this: if you DO want your site crawled, teaching the Annoyingly it looks like you need to configure an auth token of some sort in order to use their API though, which is likely too much hassle to be worth building into Datasette itself: https://developers.google.com/search/apis/indexing-api/v3/using-api ``` curl -X POST https://indexing.googleapis.com/v3/urlNotifications:publish -d '{ "url": "https://careers.google.com/jobs/google/technical-writer", "type": "URL_UPDATED" }' -H "Content-Type: application/json" { "error": { "code": 401, "message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", "status": "UNAUTHENTICATED" } } ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Manage /robots.txt in Datasette core, block robots by default 964322136 | |
895509536 | https://github.com/simonw/datasette/issues/1426#issuecomment-895509536 | https://api.github.com/repos/simonw/datasette/issues/1426 | IC_kwDOBm6k_c41YGQg | simonw 9599 | 2021-08-09T20:12:57Z | 2021-08-09T20:12:57Z | OWNER | I could try out the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Manage /robots.txt in Datasette core, block robots by default 964322136 | |
895500565 | https://github.com/simonw/datasette/issues/1426#issuecomment-895500565 | https://api.github.com/repos/simonw/datasette/issues/1426 | IC_kwDOBm6k_c41YEEV | simonw 9599 | 2021-08-09T20:00:04Z | 2021-08-09T20:00:04Z | OWNER | A few options for how this would work:
Options could be:
The "limited" mode is particularly interesting. Could even make it the default, but I think that may be a bit too confusing. Idea would be to get the key pages indexed but use |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Manage /robots.txt in Datasette core, block robots by default 964322136 | |
894930013 | https://github.com/simonw/datasette/issues/1421#issuecomment-894930013 | https://api.github.com/repos/simonw/datasette/issues/1421 | IC_kwDOBm6k_c41V4xd | simonw 9599 | 2021-08-09T03:38:06Z | 2021-08-09T03:38:06Z | OWNER | Amusing edge-case: if you run this against a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Query parameters" form shows wrong input fields if query contains "03:31" style times 959999095 | |
894929769 | https://github.com/simonw/datasette/issues/1421#issuecomment-894929769 | https://api.github.com/repos/simonw/datasette/issues/1421 | IC_kwDOBm6k_c41V4tp | simonw 9599 | 2021-08-09T03:36:49Z | 2021-08-09T03:36:49Z | OWNER | SQLite carries a warning about using
I think that's OK here, because of the regular expression fallback. If the format changes in the future in a way that breaks the query the error should be caught and the regex-captured parameters should be returned instead. Hmmm... actually that's not entirely true: https://github.com/simonw/datasette/blob/b1fed48a95516ae84c0f020582303ab50ab817e2/datasette/utils/init.py#L1084-L1091 If the format changes such that the same columns are returned but the I'm going to take that risk for the moment, but I'll actively watch out for problems in the future. If this does turn out to be bad I can always go back to the pure regular expression mechanism. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Query parameters" form shows wrong input fields if query contains "03:31" style times 959999095 | |
894929080 | https://github.com/simonw/datasette/issues/1421#issuecomment-894929080 | https://api.github.com/repos/simonw/datasette/issues/1421 | IC_kwDOBm6k_c41V4i4 | simonw 9599 | 2021-08-09T03:33:02Z | 2021-08-09T03:33:02Z | OWNER | Fixed! Fantastic, this one has been bothering me for years. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Query parameters" form shows wrong input fields if query contains "03:31" style times 959999095 | |
894927185 | https://github.com/simonw/datasette/issues/1421#issuecomment-894927185 | https://api.github.com/repos/simonw/datasette/issues/1421 | IC_kwDOBm6k_c41V4FR | simonw 9599 | 2021-08-09T03:25:01Z | 2021-08-09T03:25:01Z | OWNER | One catch with this approach: if the SQL query is invalid, the parameters will not be extracted and shown as form fields. Maybe that's completely fine? Why display a form if it's going to break when the user actually runs the query? But it does bother me. I worry that someone who is still iterating on and editing their query before actually starting to use it might find the behaviour confusing. So maybe if the query raises an exception it could fall back on the regular expression results? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Query parameters" form shows wrong input fields if query contains "03:31" style times 959999095 | |
894925914 | https://github.com/simonw/datasette/issues/1421#issuecomment-894925914 | https://api.github.com/repos/simonw/datasette/issues/1421 | IC_kwDOBm6k_c41V3xa | simonw 9599 | 2021-08-09T03:20:42Z | 2021-08-09T03:20:42Z | OWNER | I think this works! ```python re_named_parameter = re.compile(":([a-zA-Z0-9]+)") async def derive_named_parameters(db, sql): explain = 'explain {}'.format(sql.strip().rstrip(";")) possible_params = _re_named_parameter.findall(sql) try: results = await db.execute(explain, {p: None for p in possible_params}) return [row["p4"].lstrip(":") for row in results if row["opcode"] == "Variable"] except sqlite3.DatabaseError: return [] ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Query parameters" form shows wrong input fields if query contains "03:31" style times 959999095 | |
894925437 | https://github.com/simonw/datasette/issues/1421#issuecomment-894925437 | https://api.github.com/repos/simonw/datasette/issues/1421 | IC_kwDOBm6k_c41V3p9 | simonw 9599 | 2021-08-09T03:19:00Z | 2021-08-09T03:19:00Z | OWNER | This may not work:
The I could try using the regex to pull out candidates and passing |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Query parameters" form shows wrong input fields if query contains "03:31" style times 959999095 | |
894922703 | https://github.com/simonw/datasette/issues/1421#issuecomment-894922703 | https://api.github.com/repos/simonw/datasette/issues/1421 | IC_kwDOBm6k_c41V2_P | simonw 9599 | 2021-08-09T03:09:29Z | 2021-08-09T03:09:29Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Query parameters" form shows wrong input fields if query contains "03:31" style times 959999095 | ||
894922145 | https://github.com/simonw/datasette/issues/1421#issuecomment-894922145 | https://api.github.com/repos/simonw/datasette/issues/1421 | IC_kwDOBm6k_c41V22h | simonw 9599 | 2021-08-09T03:07:38Z | 2021-08-09T03:07:38Z | OWNER | I hoped this would work:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Query parameters" form shows wrong input fields if query contains "03:31" style times 959999095 | |
894921512 | https://github.com/simonw/datasette/issues/1421#issuecomment-894921512 | https://api.github.com/repos/simonw/datasette/issues/1421 | IC_kwDOBm6k_c41V2so | simonw 9599 | 2021-08-09T03:05:26Z | 2021-08-09T03:05:26Z | OWNER | I may have a way to work around this, using
But... if I run addr | opcode | p1 | p2 | p3 | p4 | p5 | comment -- | -- | -- | -- | -- | -- | -- | -- 20 | ResultRow | 6 | 10 | 0 | | 0 | 21 | Next | 0 | 3 | 0 | | 1 | 22 | Halt | 0 | 0 | 0 | | 0 | 23 | Transaction | 0 | 0 | 35 | 0 | 1 | 24 | Variable | 1 | 2 | 0 | :state | 0 | 25 | Variable | 2 | 3 | 0 | :on_earth | 0 | 26 | String8 | 0 | 4 | 0 | 00:04 | 0 | 27 | Goto | 0 | 1 | 0 | | 0 | Could it be as simple as pulling out those |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Query parameters" form shows wrong input fields if query contains "03:31" style times 959999095 | |
894900267 | https://github.com/simonw/datasette/issues/1425#issuecomment-894900267 | https://api.github.com/repos/simonw/datasette/issues/1425 | IC_kwDOBm6k_c41Vxgr | simonw 9599 | 2021-08-09T01:31:22Z | 2021-08-09T01:31:22Z | OWNER | I used this to build a new plugin: https://github.com/simonw/datasette-query-links |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
render_cell() hook should support returning an awaitable 963528457 | |
894893319 | https://github.com/simonw/datasette/issues/1425#issuecomment-894893319 | https://api.github.com/repos/simonw/datasette/issues/1425 | IC_kwDOBm6k_c41Vv0H | simonw 9599 | 2021-08-09T01:08:56Z | 2021-08-09T01:09:12Z | OWNER | Demo: https://latest.datasette.io/fixtures/simple_primary_key shows |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
render_cell() hook should support returning an awaitable 963528457 | |
894884874 | https://github.com/simonw/datasette/issues/1425#issuecomment-894884874 | https://api.github.com/repos/simonw/datasette/issues/1425 | IC_kwDOBm6k_c41VtwK | simonw 9599 | 2021-08-09T00:38:20Z | 2021-08-09T00:38:20Z | OWNER | I'm trying the version where I remove |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
render_cell() hook should support returning an awaitable 963528457 | |
894883664 | https://github.com/simonw/datasette/issues/1425#issuecomment-894883664 | https://api.github.com/repos/simonw/datasette/issues/1425 | IC_kwDOBm6k_c41VtdQ | simonw 9599 | 2021-08-09T00:33:56Z | 2021-08-09T00:33:56Z | OWNER | I could extract that code out and write my own function which implements the equivalent of calling That's pretty nasty. Could I instead call the plugin hook normally, but then have additional logic which says "if I await it and it returns I could remove the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
render_cell() hook should support returning an awaitable 963528457 | |
894882642 | https://github.com/simonw/datasette/issues/1425#issuecomment-894882642 | https://api.github.com/repos/simonw/datasette/issues/1425 | IC_kwDOBm6k_c41VtNS | simonw 9599 | 2021-08-09T00:29:57Z | 2021-08-09T00:29:57Z | OWNER | Here's the code in
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
render_cell() hook should support returning an awaitable 963528457 | |
894882123 | https://github.com/simonw/datasette/issues/1425#issuecomment-894882123 | https://api.github.com/repos/simonw/datasette/issues/1425 | IC_kwDOBm6k_c41VtFL | simonw 9599 | 2021-08-09T00:27:43Z | 2021-08-09T00:27:43Z | OWNER | Good news: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
render_cell() hook should support returning an awaitable 963528457 | |
894881448 | https://github.com/simonw/datasette/issues/1425#issuecomment-894881448 | https://api.github.com/repos/simonw/datasette/issues/1425 | IC_kwDOBm6k_c41Vs6o | simonw 9599 | 2021-08-09T00:24:25Z | 2021-08-09T00:24:39Z | OWNER | My hunch is that the "skip this Could that be because Pluggy handles the "do the next if This would suggest that all of the Still don't see why it would pass on my laptop but fail in CI though. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
render_cell() hook should support returning an awaitable 963528457 | |
894881016 | https://github.com/simonw/datasette/issues/1425#issuecomment-894881016 | https://api.github.com/repos/simonw/datasette/issues/1425 | IC_kwDOBm6k_c41Vsz4 | simonw 9599 | 2021-08-09T00:21:53Z | 2021-08-09T00:21:53Z | OWNER | Still one test failure: ``` def test_hook_render_cell_link_from_json(app_client): sql = """ select '{"href": "http://example.com/", "label":"Example"}' """.strip() path = "/fixtures?" + urllib.parse.urlencode({"sql": sql}) response = app_client.get(path) td = Soup(response.body, "html.parser").find("table").find("tbody").find("td") a = td.find("a")
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
render_cell() hook should support returning an awaitable 963528457 | |
894869692 | https://github.com/simonw/datasette/issues/1425#issuecomment-894869692 | https://api.github.com/repos/simonw/datasette/issues/1425 | IC_kwDOBm6k_c41VqC8 | simonw 9599 | 2021-08-08T23:08:29Z | 2021-08-08T23:08:29Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
render_cell() hook should support returning an awaitable 963528457 | ||
894865323 | https://github.com/simonw/datasette/issues/1425#issuecomment-894865323 | https://api.github.com/repos/simonw/datasette/issues/1425 | IC_kwDOBm6k_c41Vo-r | simonw 9599 | 2021-08-08T22:33:19Z | 2021-08-08T22:33:19Z | OWNER | I can do this with the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
render_cell() hook should support returning an awaitable 963528457 | |
894864744 | https://github.com/simonw/datasette/issues/1424#issuecomment-894864744 | https://api.github.com/repos/simonw/datasette/issues/1424 | IC_kwDOBm6k_c41Vo1o | simonw 9599 | 2021-08-08T22:27:31Z | 2021-08-08T22:27:31Z | OWNER | https://docs.python.org/3/library/sqlite3.html#exceptions is useful - it looks like |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document exceptions that can be raised by db.execute() and friends 963527045 | |
894864682 | https://github.com/simonw/datasette/issues/1424#issuecomment-894864682 | https://api.github.com/repos/simonw/datasette/issues/1424 | IC_kwDOBm6k_c41Vo0q | simonw 9599 | 2021-08-08T22:26:46Z | 2021-08-08T22:26:46Z | OWNER | Note that the So maybe encourage people to use them from |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document exceptions that can be raised by db.execute() and friends 963527045 | |
894864616 | https://github.com/simonw/datasette/issues/1424#issuecomment-894864616 | https://api.github.com/repos/simonw/datasette/issues/1424 | IC_kwDOBm6k_c41Vozo | simonw 9599 | 2021-08-08T22:26:08Z | 2021-08-08T22:26:08Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document exceptions that can be raised by db.execute() and friends 963527045 | |
894864404 | https://github.com/simonw/datasette/issues/1424#issuecomment-894864404 | https://api.github.com/repos/simonw/datasette/issues/1424 | IC_kwDOBm6k_c41VowU | simonw 9599 | 2021-08-08T22:24:06Z | 2021-08-08T22:24:06Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document exceptions that can be raised by db.execute() and friends 963527045 | ||
894607989 | https://github.com/simonw/datasette/issues/1422#issuecomment-894607989 | https://api.github.com/repos/simonw/datasette/issues/1422 | IC_kwDOBm6k_c41UqJ1 | simonw 9599 | 2021-08-07T05:31:57Z | 2021-08-07T05:31:57Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to default to hiding the SQL for a canned query 961367843 | ||
894606843 | https://github.com/simonw/datasette/issues/1421#issuecomment-894606843 | https://api.github.com/repos/simonw/datasette/issues/1421 | IC_kwDOBm6k_c41Up37 | simonw 9599 | 2021-08-07T05:17:12Z | 2021-08-07T05:17:12Z | OWNER | Marking this blocked because I don't have a way around the needing-a-SQLite-SQL-parser problem at the moment. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Query parameters" form shows wrong input fields if query contains "03:31" style times 959999095 | |
894606796 | https://github.com/simonw/datasette/issues/1421#issuecomment-894606796 | https://api.github.com/repos/simonw/datasette/issues/1421 | IC_kwDOBm6k_c41Up3M | simonw 9599 | 2021-08-07T05:16:39Z | 2021-08-07T05:16:39Z | OWNER | Urgh, yeah I've seen this one before. Fixing it pretty much requires writing a full SQLite SQL syntax parser in Python, which is frustratingly complicated for solving this issue! You can work around this for a canned query by using the optional |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Query parameters" form shows wrong input fields if query contains "03:31" style times 959999095 | |
894589140 | https://github.com/simonw/datasette/issues/1422#issuecomment-894589140 | https://api.github.com/repos/simonw/datasette/issues/1422 | IC_kwDOBm6k_c41UljU | simonw 9599 | 2021-08-07T01:58:16Z | 2021-08-07T01:58:24Z | OWNER | Also need to consider this hidden field - it should pass the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to default to hiding the SQL for a canned query 961367843 | |
894454644 | https://github.com/simonw/datasette/issues/1423#issuecomment-894454644 | https://api.github.com/repos/simonw/datasette/issues/1423 | IC_kwDOBm6k_c41UEt0 | simonw 9599 | 2021-08-06T18:52:49Z | 2021-08-06T18:52:49Z | OWNER | This means that the counts would be unavailable to users who cannot see tooltips (e.g. mobile users) on pages that did not have any facets that broke the 30 limit and hence displayed that "..." link. I think I'm OK with that, for the moment. May revisit in the future. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show count of facet values if ?_facet_size=max 962391325 | |
894454087 | https://github.com/simonw/datasette/issues/1423#issuecomment-894454087 | https://api.github.com/repos/simonw/datasette/issues/1423 | IC_kwDOBm6k_c41UElH | simonw 9599 | 2021-08-06T18:51:42Z | 2021-08-06T18:51:42Z | OWNER | The invisible tooltip could say "Showing 30 items, more available" (helping save you from counting up to 20 if you know about the secret feature). The numbers could then be fully displayed on the "..." page. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show count of facet values if ?_facet_size=max 962391325 | |
894453520 | https://github.com/simonw/datasette/issues/1423#issuecomment-894453520 | https://api.github.com/repos/simonw/datasette/issues/1423 | IC_kwDOBm6k_c41UEcQ | simonw 9599 | 2021-08-06T18:50:40Z | 2021-08-06T18:50:40Z | OWNER | Point of confusion: if only 30 options are shown, but there's a So the original idea of showing the counts only if |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show count of facet values if ?_facet_size=max 962391325 | |
894452990 | https://github.com/simonw/datasette/issues/1423#issuecomment-894452990 | https://api.github.com/repos/simonw/datasette/issues/1423 | IC_kwDOBm6k_c41UET- | simonw 9599 | 2021-08-06T18:49:37Z | 2021-08-06T18:49:37Z | OWNER | Could display them always, like this: That's with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show count of facet values if ?_facet_size=max 962391325 | |
893996604 | https://github.com/simonw/datasette/issues/1423#issuecomment-893996604 | https://api.github.com/repos/simonw/datasette/issues/1423 | IC_kwDOBm6k_c41SU48 | simonw 9599 | 2021-08-06T04:43:07Z | 2021-08-06T04:43:37Z | OWNER | Problem: on a page which doesn't have quite enough facet values to trigger the display of the "..." link that links to So maybe the count should always be shown, perhaps as a non-bold light colored number? I could even hide it in a non-discoverable tooltip. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show count of facet values if ?_facet_size=max 962391325 | |
893133496 | https://github.com/simonw/datasette/issues/1419#issuecomment-893133496 | https://api.github.com/repos/simonw/datasette/issues/1419 | IC_kwDOBm6k_c41PCK4 | simonw 9599 | 2021-08-05T03:22:44Z | 2021-08-05T03:22:44Z | OWNER | I ran into this exact same problem today! I only just learned how to use filter on aggregates: https://til.simonwillison.net/sqlite/sqlite-aggregate-filter-clauses A workaround I used is to add this to the deploy command:
This will install the https://pypi.org/project/pysqlite3-binary for package which bundles a more recent SQLite version. |
{ "total_count": 2, "+1": 2, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`publish cloudrun` should deploy a more recent SQLite version 959710008 | |
893131703 | https://github.com/simonw/datasette/issues/1422#issuecomment-893131703 | https://api.github.com/repos/simonw/datasette/issues/1422 | IC_kwDOBm6k_c41PBu3 | simonw 9599 | 2021-08-05T03:16:46Z | 2021-08-05T03:16:46Z | OWNER | The logic for this is a little bit fiddly, due to the need to switch to using
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to default to hiding the SQL for a canned query 961367843 | |
893122356 | https://github.com/simonw/datasette/issues/1422#issuecomment-893122356 | https://api.github.com/repos/simonw/datasette/issues/1422 | IC_kwDOBm6k_c41O_c0 | simonw 9599 | 2021-08-05T02:52:31Z | 2021-08-05T02:52:44Z | OWNER | If you do this it should still be possible to view the SQL - which means we need a new parameter. I propose I think the configuration should use |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to default to hiding the SQL for a canned query 961367843 | |
893079520 | https://github.com/simonw/datasette/issues/1420#issuecomment-893079520 | https://api.github.com/repos/simonw/datasette/issues/1420 | IC_kwDOBm6k_c41O0_g | simonw 9599 | 2021-08-05T00:54:59Z | 2021-08-05T00:54:59Z | OWNER | Just saw this error:
Which is weird because I managed to run this successfully the other day. Maybe a region difference thing? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`datasette publish cloudrun --cpu X` option 959898166 | |
892988609 | https://github.com/simonw/sqlite-utils/issues/308#issuecomment-892988609 | https://api.github.com/repos/simonw/sqlite-utils/issues/308 | IC_kwDOCGYnMM41OezB | simonw 9599 | 2021-08-04T21:30:59Z | 2021-08-04T21:30:59Z | OWNER | OK, this works great as a proof-of-concept (though maybe I should remove the output from the cells so people have to run it themselves in the Binder environment?) Next challenge: how extensive should it be? What features should I cover? Should I do a basic tutorial and then several advanced tutorials? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add an interactive tutorial as a Jupyter notebook 961008507 | |
892957281 | https://github.com/simonw/sqlite-utils/issues/308#issuecomment-892957281 | https://api.github.com/repos/simonw/sqlite-utils/issues/308 | IC_kwDOCGYnMM41OXJh | simonw 9599 | 2021-08-04T20:37:00Z | 2021-08-04T20:37:00Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add an interactive tutorial as a Jupyter notebook 961008507 | ||
892376353 | https://github.com/simonw/datasette/issues/1420#issuecomment-892376353 | https://api.github.com/repos/simonw/datasette/issues/1420 | IC_kwDOBm6k_c41MJUh | simonw 9599 | 2021-08-04T05:33:12Z | 2021-08-04T05:33:12Z | OWNER | In the Cloud Run console (before I deleted these services) when I click "Edit and deploy new revision" I see this for the default one: And this for the big one: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`datasette publish cloudrun --cpu X` option 959898166 | |
892374253 | https://github.com/simonw/datasette/issues/1420#issuecomment-892374253 | https://api.github.com/repos/simonw/datasette/issues/1420 | IC_kwDOBm6k_c41MIzt | simonw 9599 | 2021-08-04T05:27:21Z | 2021-08-04T05:29:59Z | OWNER | I'll delete these services shortly afterwards. Right now: https://fixtures-over-provisioned-issue-1420-j7hipcg4aq-uc.a.run.app/-/psutil (deployed with ... psutil.cpu_times(True) scputimes(user=0.0, nice=0.0, system=0.0, idle=0.0, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0) scputimes(user=0.0, nice=0.0, system=0.0, idle=0.0, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0) scputimes(user=0.0, nice=0.0, system=0.0, idle=0.0, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0) scputimes(user=0.0, nice=0.0, system=0.0, idle=0.0, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0) psutil.virtual_memory()
svmem(total=2147483648, available=2092531712, percent=2.6, used=33103872, free=2092531712, active=44130304, inactive=10792960, buffers=0, cached=21848064, shared=262144, slab=0)
... psutil.cpu_times(True) scputimes(user=0.0, nice=0.0, system=0.0, idle=0.0, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0) scputimes(user=0.0, nice=0.0, system=0.0, idle=0.0, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0) psutil.virtual_memory() svmem(total=2147483648, available=2091188224, percent=2.6, used=40071168, free=2091188224, active=41586688, inactive=7983104, buffers=0, cached=16224256, shared=262144, slab=0) ``` These numbers are different enough that I assume this works as advertised. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`datasette publish cloudrun --cpu X` option 959898166 | |
892372509 | https://github.com/simonw/datasette/issues/1420#issuecomment-892372509 | https://api.github.com/repos/simonw/datasette/issues/1420 | IC_kwDOBm6k_c41MIYd | simonw 9599 | 2021-08-04T05:22:29Z | 2021-08-04T05:22:29Z | OWNER | Testing this manually with:
And for comparison:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`datasette publish cloudrun --cpu X` option 959898166 | |
892365639 | https://github.com/simonw/datasette/issues/1420#issuecomment-892365639 | https://api.github.com/repos/simonw/datasette/issues/1420 | IC_kwDOBm6k_c41MGtH | simonw 9599 | 2021-08-04T05:05:07Z | 2021-08-04T05:05:07Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`datasette publish cloudrun --cpu X` option 959898166 | ||
891984359 | https://github.com/simonw/datasette/pull/1418#issuecomment-891984359 | https://api.github.com/repos/simonw/datasette/issues/1418 | IC_kwDOBm6k_c41Kpnn | simonw 9599 | 2021-08-03T16:21:56Z | 2021-08-03T16:21:56Z | OWNER | Failed with:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Spelling corrections plus CI job for codespell 959284434 | |
891979858 | https://github.com/simonw/datasette/issues/1417#issuecomment-891979858 | https://api.github.com/repos/simonw/datasette/issues/1417 | IC_kwDOBm6k_c41KohS | simonw 9599 | 2021-08-03T16:15:30Z | 2021-08-03T16:15:30Z | OWNER | Docs: https://pypi.org/project/codespell/ There's a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use codespell in CI to spot spelling errors 959278472 | |
891380382 | https://github.com/simonw/sqlite-utils/issues/251#issuecomment-891380382 | https://api.github.com/repos/simonw/sqlite-utils/issues/251 | IC_kwDOCGYnMM41IWKe | simonw 9599 | 2021-08-02T22:39:46Z | 2021-08-02T22:39:46Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"sqlite-utils convert" command to replace the separate "sqlite-transform" tool 841377702 | ||
891359751 | https://github.com/simonw/sqlite-utils/issues/298#issuecomment-891359751 | https://api.github.com/repos/simonw/sqlite-utils/issues/298 | IC_kwDOCGYnMM41IRIH | simonw 9599 | 2021-08-02T21:55:16Z | 2021-08-02T21:55:16Z | OWNER | This is a feature already! You can do this:
See https://sqlite-utils.datasette.io/en/stable/cli.html#inserting-newline-delimited-json |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Read lines with JSON object 951581763 | |
891356906 | https://github.com/simonw/sqlite-utils/issues/300#issuecomment-891356906 | https://api.github.com/repos/simonw/sqlite-utils/issues/300 | IC_kwDOCGYnMM41IQbq | simonw 9599 | 2021-08-02T21:49:10Z | 2021-08-02T21:49:10Z | OWNER | I'm nervous to set this by default in the Python library because it's a global setting, so I can't isolate it to just code that is being called by a The new I like the suggestion to include this in the documentation. I'll do that! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Returning underlying cause for User Defined Functions 956832836 | |
891352587 | https://github.com/simonw/sqlite-utils/issues/306#issuecomment-891352587 | https://api.github.com/repos/simonw/sqlite-utils/issues/306 | IC_kwDOCGYnMM41IPYL | simonw 9599 | 2021-08-02T21:39:34Z | 2021-08-02T21:39:34Z | OWNER | This older TIL would have saved me some time! https://til.simonwillison.net/sphinx/sphinx-ext-extlinks |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Configure sphinx.ext.extlinks for issues 958516743 | |
891352132 | https://github.com/simonw/datasette/issues/1227#issuecomment-891352132 | https://api.github.com/repos/simonw/datasette/issues/1227 | IC_kwDOBm6k_c41IPRE | simonw 9599 | 2021-08-02T21:38:39Z | 2021-08-02T21:38:39Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Configure sphinx.ext.extlinks for issues 810394616 | ||
891352073 | https://github.com/simonw/sqlite-utils/issues/306#issuecomment-891352073 | https://api.github.com/repos/simonw/sqlite-utils/issues/306 | IC_kwDOCGYnMM41IPQJ | simonw 9599 | 2021-08-02T21:38:32Z | 2021-08-02T21:38:32Z | OWNER | TIL about this: https://til.simonwillison.net/vscode/vs-code-regular-expressions |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Configure sphinx.ext.extlinks for issues 958516743 | |
891257730 | https://github.com/simonw/sqlite-utils/issues/304#issuecomment-891257730 | https://api.github.com/repos/simonw/sqlite-utils/issues/304 | IC_kwDOCGYnMM41H4OC | simonw 9599 | 2021-08-02T19:00:00Z | 2021-08-02T19:00:00Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`table.convert(..., where=)` and `sqlite-utils convert ... --where=` 957731178 | ||
890713185 | https://github.com/simonw/sqlite-utils/issues/305#issuecomment-890713185 | https://api.github.com/repos/simonw/sqlite-utils/issues/305 | IC_kwDOCGYnMM41FzRh | simonw 9599 | 2021-08-02T04:53:53Z | 2021-08-02T04:53:53Z | OWNER | I'm going to rename |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Python: need a way to execute a count with an extra where clause 957741820 | |
890711924 | https://github.com/simonw/sqlite-utils/issues/304#issuecomment-890711924 | https://api.github.com/repos/simonw/sqlite-utils/issues/304 | IC_kwDOCGYnMM41Fy90 | simonw 9599 | 2021-08-02T04:50:13Z | 2021-08-02T04:50:13Z | OWNER | For the Python function, the args will be |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`table.convert(..., where=)` and `sqlite-utils convert ... --where=` 957731178 | |
890704624 | https://github.com/simonw/sqlite-utils/issues/304#issuecomment-890704624 | https://api.github.com/repos/simonw/sqlite-utils/issues/304 | IC_kwDOCGYnMM41FxLw | simonw 9599 | 2021-08-02T04:28:42Z | 2021-08-02T04:28:42Z | OWNER | For the command-line version this can duplicate the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`table.convert(..., where=)` and `sqlite-utils convert ... --where=` 957731178 | |
890553783 | https://github.com/simonw/sqlite-utils/issues/251#issuecomment-890553783 | https://api.github.com/repos/simonw/sqlite-utils/issues/251 | IC_kwDOCGYnMM41FMW3 | simonw 9599 | 2021-08-01T16:59:09Z | 2021-08-01T16:59:09Z | OWNER | I'm going with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"sqlite-utils convert" command to replace the separate "sqlite-transform" tool 841377702 | |
890552827 | https://github.com/simonw/sqlite-utils/issues/251#issuecomment-890552827 | https://api.github.com/repos/simonw/sqlite-utils/issues/251 | IC_kwDOCGYnMM41FMH7 | simonw 9599 | 2021-08-01T16:52:00Z | 2021-08-01T16:52:00Z | OWNER | I'll finish the work on this in a PR. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"sqlite-utils convert" command to replace the separate "sqlite-transform" tool 841377702 | |
890548009 | https://github.com/simonw/sqlite-utils/issues/302#issuecomment-890548009 | https://api.github.com/repos/simonw/sqlite-utils/issues/302 | IC_kwDOCGYnMM41FK8p | simonw 9599 | 2021-08-01T16:18:13Z | 2021-08-01T16:18:13Z | OWNER | Basic API design:
You can pass a list of columns instead of a single game column string to apply it to multiple columns. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Python library version of `sqlite-utils convert` 957529248 | |
890448623 | https://github.com/simonw/sqlite-utils/issues/251#issuecomment-890448623 | https://api.github.com/repos/simonw/sqlite-utils/issues/251 | IC_kwDOCGYnMM41Eyrv | simonw 9599 | 2021-08-01T04:33:30Z | 2021-08-01T04:33:30Z | OWNER | I've started an implementation in the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"sqlite-utils convert" command to replace the separate "sqlite-transform" tool 841377702 | |
890448119 | https://github.com/simonw/sqlite-utils/issues/251#issuecomment-890448119 | https://api.github.com/repos/simonw/sqlite-utils/issues/251 | IC_kwDOCGYnMM41Eyj3 | simonw 9599 | 2021-08-01T04:28:05Z | 2021-08-01T04:30:28Z | OWNER | In which case I think |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"sqlite-utils convert" command to replace the separate "sqlite-transform" tool 841377702 | |
890447102 | https://github.com/simonw/sqlite-utils/issues/251#issuecomment-890447102 | https://api.github.com/repos/simonw/sqlite-utils/issues/251 | IC_kwDOCGYnMM41EyT- | simonw 9599 | 2021-08-01T04:20:18Z | 2021-08-01T04:29:26Z | OWNER | I could stick them in a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"sqlite-utils convert" command to replace the separate "sqlite-transform" tool 841377702 | |
890448190 | https://github.com/simonw/sqlite-utils/issues/251#issuecomment-890448190 | https://api.github.com/repos/simonw/sqlite-utils/issues/251 | IC_kwDOCGYnMM41Eyk- | simonw 9599 | 2021-08-01T04:28:49Z | 2021-08-01T04:28:49Z | OWNER | Would make sense to accept code from standard input too:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"sqlite-utils convert" command to replace the separate "sqlite-transform" tool 841377702 | |
890446808 | https://github.com/simonw/sqlite-utils/issues/251#issuecomment-890446808 | https://api.github.com/repos/simonw/sqlite-utils/issues/251 | IC_kwDOCGYnMM41EyPY | simonw 9599 | 2021-08-01T04:18:18Z | 2021-08-01T04:28:18Z | OWNER | Or.... how about making the Then you could do something like this:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"sqlite-utils convert" command to replace the separate "sqlite-transform" tool 841377702 | |
890446943 | https://github.com/simonw/sqlite-utils/issues/251#issuecomment-890446943 | https://api.github.com/repos/simonw/sqlite-utils/issues/251 | IC_kwDOCGYnMM41EyRf | simonw 9599 | 2021-08-01T04:19:09Z | 2021-08-01T04:19:09Z | OWNER | That's a pretty neat fix, though it's a bit more challenging on the documentation front - maybe the help text for |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"sqlite-utils convert" command to replace the separate "sqlite-transform" tool 841377702 | |
890446506 | https://github.com/simonw/sqlite-utils/issues/251#issuecomment-890446506 | https://api.github.com/repos/simonw/sqlite-utils/issues/251 | IC_kwDOCGYnMM41EyKq | simonw 9599 | 2021-08-01T04:16:36Z | 2021-08-01T04:16:36Z | OWNER | Back to the design board then. One way to handle this would be the long-form:
An ugly solution would be to make all four of those options available on |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"sqlite-utils convert" command to replace the separate "sqlite-transform" tool 841377702 |
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]);
issue >30