issue_comments
8,358 rows where author_association = "OWNER" sorted by updated_at descending
This data as json, CSV (advanced)
user 1
- simonw 3,986
id | html_url | issue_url | node_id | user | created_at | updated_at ▲ | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
755492945 | https://github.com/simonw/datasette/issues/1179#issuecomment-755492945 | https://api.github.com/repos/simonw/datasette/issues/1179 | MDEyOklzc3VlQ29tbWVudDc1NTQ5Mjk0NQ== | simonw 9599 | 2021-01-06T18:37:39Z | 2021-01-06T18:37:39Z | OWNER | I think I'll call this |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make original path available to render hooks 780278550 | |
755489974 | https://github.com/simonw/datasette/issues/1179#issuecomment-755489974 | https://api.github.com/repos/simonw/datasette/issues/1179 | MDEyOklzc3VlQ29tbWVudDc1NTQ4OTk3NA== | simonw 9599 | 2021-01-06T18:35:24Z | 2021-01-06T18:35:24Z | OWNER | Django calls this |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make original path available to render hooks 780278550 | |
755486103 | https://github.com/simonw/datasette/issues/1179#issuecomment-755486103 | https://api.github.com/repos/simonw/datasette/issues/1179 | MDEyOklzc3VlQ29tbWVudDc1NTQ4NjEwMw== | simonw 9599 | 2021-01-06T18:32:41Z | 2021-01-06T18:34:11Z | OWNER | This parameter will return the URL path, with querystring arguments, to the HTML version of the page - e.g. Open questions:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make original path available to render hooks 780278550 | |
755484384 | https://github.com/simonw/datasette/issues/782#issuecomment-755484384 | https://api.github.com/repos/simonw/datasette/issues/782 | MDEyOklzc3VlQ29tbWVudDc1NTQ4NDM4NA== | simonw 9599 | 2021-01-06T18:31:14Z | 2021-01-06T18:31:57Z | OWNER | In building https://latest-with-plugins.datasette.io/github/issue_comments.Notebook?_labels=on I discovered the following patterns for importing data into both Pandas and Observable/d3:
Even given this I still think the correct default is an object with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Redesign default .json format 627794879 | |
755476820 | https://github.com/simonw/datasette/issues/1178#issuecomment-755476820 | https://api.github.com/repos/simonw/datasette/issues/1178 | MDEyOklzc3VlQ29tbWVudDc1NTQ3NjgyMA== | simonw 9599 | 2021-01-06T18:24:47Z | 2021-01-06T18:24:47Z | OWNER | Issue fixed - https://latest-with-plugins.datasette.io/github/issue_comments.Notebook?_labels=on displays the correct schemes now. I can't think of a reason anyone on Cloud Run would ever NOT want the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use force_https_urls on when deploying with Cloud Run 780267857 | |
755468795 | https://github.com/simonw/datasette/issues/1178#issuecomment-755468795 | https://api.github.com/repos/simonw/datasette/issues/1178 | MDEyOklzc3VlQ29tbWVudDc1NTQ2ODc5NQ== | simonw 9599 | 2021-01-06T18:14:35Z | 2021-01-06T18:14:35Z | OWNER | Deploying that change now to test it. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use force_https_urls on when deploying with Cloud Run 780267857 | |
755163886 | https://github.com/simonw/datasette/issues/1178#issuecomment-755163886 | https://api.github.com/repos/simonw/datasette/issues/1178 | MDEyOklzc3VlQ29tbWVudDc1NTE2Mzg4Ng== | simonw 9599 | 2021-01-06T08:37:51Z | 2021-01-06T08:37:51Z | OWNER | Easiest fix would be for
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use force_https_urls on when deploying with Cloud Run 780267857 | |
755161574 | https://github.com/simonw/datasette/issues/1179#issuecomment-755161574 | https://api.github.com/repos/simonw/datasette/issues/1179 | MDEyOklzc3VlQ29tbWVudDc1NTE2MTU3NA== | simonw 9599 | 2021-01-06T08:32:31Z | 2021-01-06T08:32:31Z | OWNER | An optional |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make original path available to render hooks 780278550 | |
755160187 | https://github.com/simonw/datasette/issues/1178#issuecomment-755160187 | https://api.github.com/repos/simonw/datasette/issues/1178 | MDEyOklzc3VlQ29tbWVudDc1NTE2MDE4Nw== | simonw 9599 | 2021-01-06T08:29:35Z | 2021-01-06T08:29:35Z | OWNER | https://latest-with-plugins.datasette.io/-/asgi-scope
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use force_https_urls on when deploying with Cloud Run 780267857 | |
755159583 | https://github.com/simonw/datasette/issues/1176#issuecomment-755159583 | https://api.github.com/repos/simonw/datasette/issues/1176 | MDEyOklzc3VlQ29tbWVudDc1NTE1OTU4Mw== | simonw 9599 | 2021-01-06T08:28:20Z | 2021-01-06T08:28:20Z | OWNER | I used |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Policy on documenting "public" datasette.utils functions 779691739 | |
755158310 | https://github.com/simonw/datasette/issues/1178#issuecomment-755158310 | https://api.github.com/repos/simonw/datasette/issues/1178 | MDEyOklzc3VlQ29tbWVudDc1NTE1ODMxMA== | simonw 9599 | 2021-01-06T08:25:31Z | 2021-01-06T08:25:31Z | OWNER | Moving this to the Datasette repo. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use force_https_urls on when deploying with Cloud Run 780267857 | |
755157732 | https://github.com/simonw/datasette/issues/1178#issuecomment-755157732 | https://api.github.com/repos/simonw/datasette/issues/1178 | MDEyOklzc3VlQ29tbWVudDc1NTE1NzczMg== | simonw 9599 | 2021-01-06T08:24:12Z | 2021-01-06T08:24:12Z | OWNER | https://latest-with-plugins.datasette.io/fixtures/sortable.json has the bug too - the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use force_https_urls on when deploying with Cloud Run 780267857 | |
755157281 | https://github.com/simonw/datasette/issues/1178#issuecomment-755157281 | https://api.github.com/repos/simonw/datasette/issues/1178 | MDEyOklzc3VlQ29tbWVudDc1NTE1NzI4MQ== | simonw 9599 | 2021-01-06T08:23:14Z | 2021-01-06T08:23:14Z | OWNER | https://latest-with-plugins.datasette.io/-/settings says |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use force_https_urls on when deploying with Cloud Run 780267857 | |
755157066 | https://github.com/simonw/datasette/issues/1178#issuecomment-755157066 | https://api.github.com/repos/simonw/datasette/issues/1178 | MDEyOklzc3VlQ29tbWVudDc1NTE1NzA2Ng== | simonw 9599 | 2021-01-06T08:22:47Z | 2021-01-06T08:22:47Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use force_https_urls on when deploying with Cloud Run 780267857 | |
755156606 | https://github.com/simonw/datasette/issues/1178#issuecomment-755156606 | https://api.github.com/repos/simonw/datasette/issues/1178 | MDEyOklzc3VlQ29tbWVudDc1NTE1NjYwNg== | simonw 9599 | 2021-01-06T08:21:49Z | 2021-01-06T08:21:49Z | OWNER | https://github.com/simonw/datasette-export-notebook/blob/aec398eab4f34791d240d7bc47b6eec575b357be/datasette_export_notebook/init.py#L18-L23 Maybe this is a bug in |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use force_https_urls on when deploying with Cloud Run 780267857 | |
755134771 | https://github.com/simonw/datasette/issues/1101#issuecomment-755134771 | https://api.github.com/repos/simonw/datasette/issues/1101 | MDEyOklzc3VlQ29tbWVudDc1NTEzNDc3MQ== | simonw 9599 | 2021-01-06T07:28:01Z | 2021-01-06T07:28:01Z | OWNER | With this structure it will become possible to stream non-newline-delimited JSON array-of-objects too - the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
register_output_renderer() should support streaming data 749283032 | |
755133937 | https://github.com/simonw/datasette/issues/1101#issuecomment-755133937 | https://api.github.com/repos/simonw/datasette/issues/1101 | MDEyOklzc3VlQ29tbWVudDc1NTEzMzkzNw== | simonw 9599 | 2021-01-06T07:25:48Z | 2021-01-06T07:26:43Z | OWNER | Idea: instead of returning a dictionary,
I can then deprecate the existing |
{ "total_count": 2, "+1": 2, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
register_output_renderer() should support streaming data 749283032 | |
755128038 | https://github.com/simonw/datasette/issues/1101#issuecomment-755128038 | https://api.github.com/repos/simonw/datasette/issues/1101 | MDEyOklzc3VlQ29tbWVudDc1NTEyODAzOA== | simonw 9599 | 2021-01-06T07:10:22Z | 2021-01-06T07:10:22Z | OWNER | Yet another use-case for this: I want to be able to stream newline-delimited JSON in order to better import into Pandas:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
register_output_renderer() should support streaming data 749283032 | |
754958998 | https://github.com/simonw/datasette/issues/1171#issuecomment-754958998 | https://api.github.com/repos/simonw/datasette/issues/1171 | MDEyOklzc3VlQ29tbWVudDc1NDk1ODk5OA== | simonw 9599 | 2021-01-05T23:16:33Z | 2021-01-05T23:16:33Z | OWNER | That's really useful, thanks @rcoup |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
GitHub Actions workflow to build and sign macOS binary executables 778450486 | |
754958610 | https://github.com/simonw/datasette/issues/782#issuecomment-754958610 | https://api.github.com/repos/simonw/datasette/issues/782 | MDEyOklzc3VlQ29tbWVudDc1NDk1ODYxMA== | simonw 9599 | 2021-01-05T23:15:24Z | 2021-01-05T23:15:24Z | OWNER | https://latest-with-plugins.datasette.io/fixtures/roadside_attraction_characteristics/1.json-preview returns a 500 error at the moment - a KeyError on 'filtered_table_rows_count'. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Redesign default .json format 627794879 | |
754957658 | https://github.com/simonw/datasette/issues/576#issuecomment-754957658 | https://api.github.com/repos/simonw/datasette/issues/576 | MDEyOklzc3VlQ29tbWVudDc1NDk1NzY1OA== | simonw 9599 | 2021-01-05T23:12:50Z | 2021-01-05T23:12:50Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Documented internals API for use in plugins 497170355 | ||
754957563 | https://github.com/simonw/datasette/issues/576#issuecomment-754957563 | https://api.github.com/repos/simonw/datasette/issues/576 | MDEyOklzc3VlQ29tbWVudDc1NDk1NzU2Mw== | simonw 9599 | 2021-01-05T23:12:37Z | 2021-01-05T23:12:37Z | OWNER | I'm happy with how this has evolved, so I'm closing the issue. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Documented internals API for use in plugins 497170355 | |
754957378 | https://github.com/simonw/datasette/issues/1176#issuecomment-754957378 | https://api.github.com/repos/simonw/datasette/issues/1176 | MDEyOklzc3VlQ29tbWVudDc1NDk1NzM3OA== | simonw 9599 | 2021-01-05T23:12:03Z | 2021-01-05T23:12:03Z | OWNER | This needs to be done for Datasette 1.0. At the very least I need to ensure it's clear that |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Policy on documenting "public" datasette.utils functions 779691739 | |
754952146 | https://github.com/simonw/datasette/issues/1176#issuecomment-754952146 | https://api.github.com/repos/simonw/datasette/issues/1176 | MDEyOklzc3VlQ29tbWVudDc1NDk1MjE0Ng== | simonw 9599 | 2021-01-05T22:57:26Z | 2021-01-05T22:57:26Z | OWNER | Known public APIs might be worth adding type annotations to as well. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Policy on documenting "public" datasette.utils functions 779691739 | |
754952040 | https://github.com/simonw/datasette/issues/1176#issuecomment-754952040 | https://api.github.com/repos/simonw/datasette/issues/1176 | MDEyOklzc3VlQ29tbWVudDc1NDk1MjA0MA== | simonw 9599 | 2021-01-05T22:57:09Z | 2021-01-05T22:57:09Z | OWNER | It might be neater to move all of the non-public functions into a separate module - |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Policy on documenting "public" datasette.utils functions 779691739 | |
754951786 | https://github.com/simonw/datasette/issues/1176#issuecomment-754951786 | https://api.github.com/repos/simonw/datasette/issues/1176 | MDEyOklzc3VlQ29tbWVudDc1NDk1MTc4Ng== | simonw 9599 | 2021-01-05T22:56:27Z | 2021-01-05T22:56:43Z | OWNER | Idea: introduce a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Policy on documenting "public" datasette.utils functions 779691739 | |
754696725 | https://github.com/simonw/datasette/issues/1175#issuecomment-754696725 | https://api.github.com/repos/simonw/datasette/issues/1175 | MDEyOklzc3VlQ29tbWVudDc1NDY5NjcyNQ== | simonw 9599 | 2021-01-05T15:12:30Z | 2021-01-05T15:12:30Z | OWNER | Some tips here: https://github.com/tiangolo/fastapi/issues/78 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use structlog for logging 779156520 | |
754463845 | https://github.com/simonw/datasette/issues/1173#issuecomment-754463845 | https://api.github.com/repos/simonw/datasette/issues/1173 | MDEyOklzc3VlQ29tbWVudDc1NDQ2Mzg0NQ== | simonw 9599 | 2021-01-05T07:41:43Z | 2021-01-05T07:41:43Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
GitHub Actions workflow to build manylinux binary 778682317 | ||
754296761 | https://github.com/simonw/datasette/issues/1171#issuecomment-754296761 | https://api.github.com/repos/simonw/datasette/issues/1171 | MDEyOklzc3VlQ29tbWVudDc1NDI5Njc2MQ== | simonw 9599 | 2021-01-04T23:55:44Z | 2021-01-04T23:55:44Z | OWNER | Bit uncomfortable that it looks like you need to include your Apple ID username and password in the CI configuration to do this. I'll use GitHub Secrets for this but I don't like it - I'll definitely setup a dedicated code signing account that's not my access-to-everything AppleID for this. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
GitHub Actions workflow to build and sign macOS binary executables 778450486 | |
754295380 | https://github.com/simonw/datasette/issues/1171#issuecomment-754295380 | https://api.github.com/repos/simonw/datasette/issues/1171 | MDEyOklzc3VlQ29tbWVudDc1NDI5NTM4MA== | simonw 9599 | 2021-01-04T23:54:32Z | 2021-01-04T23:54:32Z | OWNER | https://github.com/search?l=YAML&q=gon+json&type=Code reveals some examples of people using These look useful: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
GitHub Actions workflow to build and sign macOS binary executables 778450486 | |
754287882 | https://github.com/simonw/datasette/issues/1171#issuecomment-754287882 | https://api.github.com/repos/simonw/datasette/issues/1171 | MDEyOklzc3VlQ29tbWVudDc1NDI4Nzg4Mg== | simonw 9599 | 2021-01-04T23:40:10Z | 2021-01-04T23:42:32Z | OWNER | This looks VERY useful: https://github.com/mitchellh/gon - " Sign, notarize, and package macOS CLI tools and applications written in any language. Available as both a CLI and a Go library." And it installs like this:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
GitHub Actions workflow to build and sign macOS binary executables 778450486 | |
754286783 | https://github.com/simonw/datasette/issues/1171#issuecomment-754286783 | https://api.github.com/repos/simonw/datasette/issues/1171 | MDEyOklzc3VlQ29tbWVudDc1NDI4Njc4Mw== | simonw 9599 | 2021-01-04T23:38:18Z | 2021-01-04T23:38:18Z | OWNER | Oh wow maybe I need to Notarize it too? https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
GitHub Actions workflow to build and sign macOS binary executables 778450486 | |
754286618 | https://github.com/simonw/datasette/issues/1171#issuecomment-754286618 | https://api.github.com/repos/simonw/datasette/issues/1171 | MDEyOklzc3VlQ29tbWVudDc1NDI4NjYxOA== | simonw 9599 | 2021-01-04T23:37:45Z | 2021-01-04T23:37:45Z | OWNER | https://github.com/actions/virtual-environments/issues/1820#issuecomment-719549887 looks useful - not sure if those notes are for iOS or macOS though. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
GitHub Actions workflow to build and sign macOS binary executables 778450486 | |
754285795 | https://github.com/simonw/datasette/issues/93#issuecomment-754285795 | https://api.github.com/repos/simonw/datasette/issues/93 | MDEyOklzc3VlQ29tbWVudDc1NDI4NTc5NQ== | simonw 9599 | 2021-01-04T23:35:13Z | 2021-01-04T23:35:13Z | OWNER | Next step is to automate this all! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package as standalone binary 273944952 | |
754285588 | https://github.com/simonw/datasette/issues/1152#issuecomment-754285588 | https://api.github.com/repos/simonw/datasette/issues/1152 | MDEyOklzc3VlQ29tbWVudDc1NDI4NTU4OA== | simonw 9599 | 2021-01-04T23:34:30Z | 2021-01-04T23:34:30Z | OWNER | I think the way to do this is to have a new plugin hook that returns two SQL where clauses: one returning a list of resources that the user should be able to access (the allow-list) and one returning a list of resources they are explicitly forbidden from accessing (the deny-list). Either of these can be blank. Datasette can then combine those into a full SQL query and use it to answer the question "show me a list of resources that the user is allowed to perform action X on". It can also answer the existing question, "is user X allowed to perform action Y on resource Z"? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Efficiently calculate list of databases/tables a user can view 770598024 | |
754233960 | https://github.com/simonw/datasette/issues/93#issuecomment-754233960 | https://api.github.com/repos/simonw/datasette/issues/93 | MDEyOklzc3VlQ29tbWVudDc1NDIzMzk2MA== | simonw 9599 | 2021-01-04T21:35:37Z | 2021-01-04T21:35:37Z | OWNER | I tested it by running a datasette-0.53-maco 100%[===================>] 7.91M --.-KB/s in 0.1s 2021-01-04 21:34:14 (73.4 MB/s) - ‘datasette-0.53-macos-binary.zip’ saved [8297283/8297283] Mac-1609795972770:tmp runner$ unzip datasette-0.53-macos-binary.zip
Archive: datasette-0.53-macos-binary.zip
creating: datasette-0.53-macos-binary/
inflating: datasette-0.53-macos-binary/datasette Datasette! Options: --version Show the version and exit. --help Show this message and exit. Commands: serve* Serve up specified SQLite database files with a web UI inspect install Install Python packages - e.g. package Package specified SQLite files into a new datasette Docker... plugins List currently available plugins publish Publish specified SQLite database files to the internet along... uninstall Uninstall Python packages (e.g. Mac-1609795972770:tmp runner$ datasette-0.53-macos-binary/datasette --get /-/versions.json {"python": {"version": "3.9.1", "full": "3.9.1 (default, Dec 10 2020, 10:36:35) \n[Clang 12.0.0 (clang-1200.0.32.27)]"}, "datasette": {"version": "0.53"}, "asgi": "3.0", "uvicorn": "0.13.3", "sqlite": {"version": "3.34.0", "fts_versions": ["FTS5", "FTS4", "FTS3"], "extensions": {"json1": null}, "compile_options": ["COMPILER=clang-12.0.0", "ENABLE_COLUMN_METADATA", "ENABLE_FTS3", "ENABLE_FTS3_PARENTHESIS", "ENABLE_FTS4", "ENABLE_FTS5", "ENABLE_GEOPOLY", "ENABLE_JSON1", "ENABLE_PREUPDATE_HOOK", "ENABLE_RTREE", "ENABLE_SESSION", "MAX_VARIABLE_NUMBER=250000", "THREADSAFE=1"]}} Mac-1609795972770:tmp runner$ ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package as standalone binary 273944952 | |
754229977 | https://github.com/simonw/datasette/issues/93#issuecomment-754229977 | https://api.github.com/repos/simonw/datasette/issues/93 | MDEyOklzc3VlQ29tbWVudDc1NDIyOTk3Nw== | simonw 9599 | 2021-01-04T21:28:01Z | 2021-01-04T21:28:01Z | OWNER | As an experiment, I put the macOS one in a zip file and attached it to the latest release:
It's available here: https://github.com/simonw/datasette/releases/tag/0.53 - download URL is https://github.com/simonw/datasette/releases/download/0.53/datasette-0.53-macos-binary.zip |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package as standalone binary 273944952 | |
754227543 | https://github.com/simonw/datasette/issues/93#issuecomment-754227543 | https://api.github.com/repos/simonw/datasette/issues/93 | MDEyOklzc3VlQ29tbWVudDc1NDIyNzU0Mw== | simonw 9599 | 2021-01-04T21:23:13Z | 2021-01-04T21:23:13Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package as standalone binary 273944952 | |
754219002 | https://github.com/simonw/datasette/issues/93#issuecomment-754219002 | https://api.github.com/repos/simonw/datasette/issues/93 | MDEyOklzc3VlQ29tbWVudDc1NDIxOTAwMg== | simonw 9599 | 2021-01-04T21:06:49Z | 2021-01-04T21:22:27Z | OWNER | Works on Linux/Ubuntu too, except I had to do export DATASETTE_BASE=$(python -c 'import os; print(os.path.dirname(import("datasette").file))') pyinstaller -F \ --add-data "$DATASETTE_BASE/templates:datasette/templates" \ --add-data "$DATASETTE_BASE/static:datasette/static" \ --hidden-import datasette.publish \ --hidden-import datasette.publish.heroku \ --hidden-import datasette.publish.cloudrun \ --hidden-import datasette.facets \ --hidden-import datasette.sql_functions \ --hidden-import datasette.actor_auth_cookie \ --hidden-import datasette.default_permissions \ --hidden-import datasette.default_magic_parameters \ --hidden-import datasette.blob_renderer \ --hidden-import datasette.default_menu_links \ --hidden-import uvicorn \ --hidden-import uvicorn.logging \ --hidden-import uvicorn.loops \ --hidden-import uvicorn.loops.auto \ --hidden-import uvicorn.protocols \ --hidden-import uvicorn.protocols.http \ --hidden-import uvicorn.protocols.http.auto \ --hidden-import uvicorn.protocols.websockets \ --hidden-import uvicorn.protocols.websockets.auto \ --hidden-import uvicorn.lifespan \ --hidden-import uvicorn.lifespan.on \ $(which datasette) ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package as standalone binary 273944952 | |
754218545 | https://github.com/simonw/datasette/issues/93#issuecomment-754218545 | https://api.github.com/repos/simonw/datasette/issues/93 | MDEyOklzc3VlQ29tbWVudDc1NDIxODU0NQ== | simonw 9599 | 2021-01-04T21:05:57Z | 2021-01-04T21:05:57Z | OWNER | That BASE= trick seems to work with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package as standalone binary 273944952 | |
754215392 | https://github.com/simonw/datasette/issues/93#issuecomment-754215392 | https://api.github.com/repos/simonw/datasette/issues/93 | MDEyOklzc3VlQ29tbWVudDc1NDIxNTM5Mg== | simonw 9599 | 2021-01-04T20:59:20Z | 2021-01-04T21:03:14Z | OWNER | Updated BASE=$(python -c 'import os; print(os.path.dirname(import("datasette").file))') \ pyinstaller -F \ --add-data "$BASE/templates:datasette/templates" \ --add-data "$BASE/static:datasette/static" \ --hidden-import datasette.publish \ --hidden-import datasette.publish.heroku \ --hidden-import datasette.publish.cloudrun \ --hidden-import datasette.facets \ --hidden-import datasette.sql_functions \ --hidden-import datasette.actor_auth_cookie \ --hidden-import datasette.default_permissions \ --hidden-import datasette.default_magic_parameters \ --hidden-import datasette.blob_renderer \ --hidden-import datasette.default_menu_links \ --hidden-import uvicorn \ --hidden-import uvicorn.logging \ --hidden-import uvicorn.loops \ --hidden-import uvicorn.loops.auto \ --hidden-import uvicorn.protocols \ --hidden-import uvicorn.protocols.http \ --hidden-import uvicorn.protocols.http.auto \ --hidden-import uvicorn.protocols.websockets \ --hidden-import uvicorn.protocols.websockets.auto \ --hidden-import uvicorn.lifespan \ --hidden-import uvicorn.lifespan.on \ $(which datasette) ``` |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package as standalone binary 273944952 | |
754215793 | https://github.com/simonw/datasette/issues/93#issuecomment-754215793 | https://api.github.com/repos/simonw/datasette/issues/93 | MDEyOklzc3VlQ29tbWVudDc1NDIxNTc5Mw== | simonw 9599 | 2021-01-04T21:00:14Z | 2021-01-04T21:00:14Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Package as standalone binary 273944952 | |
754194996 | https://github.com/simonw/datasette/issues/668#issuecomment-754194996 | https://api.github.com/repos/simonw/datasette/issues/668 | MDEyOklzc3VlQ29tbWVudDc1NDE5NDk5Ng== | simonw 9599 | 2021-01-04T20:18:39Z | 2021-01-04T20:18:39Z | OWNER | I fixed this in #1115 - you can run |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make it easier to load SpatiaLite 563347679 | |
754193501 | https://github.com/simonw/datasette/issues/436#issuecomment-754193501 | https://api.github.com/repos/simonw/datasette/issues/436 | MDEyOklzc3VlQ29tbWVudDc1NDE5MzUwMQ== | simonw 9599 | 2021-01-04T20:15:41Z | 2021-01-04T20:15:41Z | OWNER | Sadly |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
400 Error when trying to register new user via https://publish.datasettes.com/ 435819321 | |
754192873 | https://github.com/simonw/datasette/issues/371#issuecomment-754192873 | https://api.github.com/repos/simonw/datasette/issues/371 | MDEyOklzc3VlQ29tbWVudDc1NDE5Mjg3Mw== | simonw 9599 | 2021-01-04T20:14:28Z | 2021-01-04T20:14:28Z | OWNER | Now that Digital Ocean has App Platform this is less necessary, especially since the documentation covers how to use App Platform here: https://docs.datasette.io/en/stable/deploying.html#deploying-using-buildpacks |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette publish digitalocean plugin 377156339 | |
754192267 | https://github.com/simonw/datasette/issues/102#issuecomment-754192267 | https://api.github.com/repos/simonw/datasette/issues/102 | MDEyOklzc3VlQ29tbWVudDc1NDE5MjI2Nw== | simonw 9599 | 2021-01-04T20:13:19Z | 2021-01-04T20:13:19Z | OWNER | I'm more likely to do Lambda than Elastic Beanstalk, especially now the size limit for Lambdas has been increased as part of their support for Docker. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette publish elasticbeanstalk 274264175 | |
754191699 | https://github.com/simonw/datasette/issues/221#issuecomment-754191699 | https://api.github.com/repos/simonw/datasette/issues/221 | MDEyOklzc3VlQ29tbWVudDc1NDE5MTY5OQ== | simonw 9599 | 2021-01-04T20:12:14Z | 2021-01-04T20:12:14Z | OWNER | I'm going to close this. Plugins can register their own CLI tools (see https://github.com/simonw/click-app) if they need to. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Allow plugins to add new cli sub commands 315142414 | |
754190952 | https://github.com/simonw/datasette/issues/221#issuecomment-754190952 | https://api.github.com/repos/simonw/datasette/issues/221 | MDEyOklzc3VlQ29tbWVudDc1NDE5MDk1Mg== | simonw 9599 | 2021-01-04T20:10:51Z | 2021-01-04T20:10:51Z | OWNER | Is this still a good idea? I don't have any pressing need for it at the moment. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Allow plugins to add new cli sub commands 315142414 | |
754190814 | https://github.com/simonw/datasette/issues/221#issuecomment-754190814 | https://api.github.com/repos/simonw/datasette/issues/221 | MDEyOklzc3VlQ29tbWVudDc1NDE5MDgxNA== | simonw 9599 | 2021-01-04T20:10:34Z | 2021-01-04T20:10:34Z | OWNER | For the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Allow plugins to add new cli sub commands 315142414 | |
754188383 | https://github.com/simonw/datasette/issues/18#issuecomment-754188383 | https://api.github.com/repos/simonw/datasette/issues/18 | MDEyOklzc3VlQ29tbWVudDc1NDE4ODM4Mw== | simonw 9599 | 2021-01-04T20:05:48Z | 2021-01-04T20:05:48Z | OWNER | I'm not using Sanic any more, but this is still very feasible. If I ever do it I'll write a plugin. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
See if I can get a websockets interface working 267739593 | |
754188099 | https://github.com/simonw/datasette/issues/103#issuecomment-754188099 | https://api.github.com/repos/simonw/datasette/issues/103 | MDEyOklzc3VlQ29tbWVudDc1NDE4ODA5OQ== | simonw 9599 | 2021-01-04T20:05:14Z | 2021-01-04T20:05:14Z | OWNER | Wontfix, Cloud Run is already implemented and is a better fit for Datasette. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette publish appengine 274265878 | |
754187520 | https://github.com/simonw/datasette/issues/913#issuecomment-754187520 | https://api.github.com/repos/simonw/datasette/issues/913 | MDEyOklzc3VlQ29tbWVudDc1NDE4NzUyMA== | simonw 9599 | 2021-01-04T20:04:10Z | 2021-01-04T20:04:10Z | OWNER | That's pretty elegant: each plugin gets its own namespace and can register new settings. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for passing additional options to `datasette my.db` that affect plugins 670209331 | |
754187326 | https://github.com/simonw/datasette/issues/913#issuecomment-754187326 | https://api.github.com/repos/simonw/datasette/issues/913 | MDEyOklzc3VlQ29tbWVudDc1NDE4NzMyNg== | simonw 9599 | 2021-01-04T20:03:50Z | 2021-01-04T20:03:50Z | OWNER | I renamed
Note the lack of colons. This actually makes colons cleaner to use for plugins - I could support this:
|
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for passing additional options to `datasette my.db` that affect plugins 670209331 | |
754184287 | https://github.com/simonw/datasette/issues/1111#issuecomment-754184287 | https://api.github.com/repos/simonw/datasette/issues/1111 | MDEyOklzc3VlQ29tbWVudDc1NDE4NDI4Nw== | simonw 9599 | 2021-01-04T19:57:53Z | 2021-01-04T19:57:53Z | OWNER | Relevant new feature in sqlite-utils: the ability to use triggers to maintain fast counts. This optimization could help a lot here. https://github.com/simonw/sqlite-utils/issues/212 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Accessing a database's `.json` is slow for very large SQLite files 751195017 | |
754182058 | https://github.com/simonw/datasette/issues/1164#issuecomment-754182058 | https://api.github.com/repos/simonw/datasette/issues/1164 | MDEyOklzc3VlQ29tbWVudDc1NDE4MjA1OA== | simonw 9599 | 2021-01-04T19:53:31Z | 2021-01-04T19:53:31Z | OWNER | This will be helped by the new |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for minifying JavaScript that ships with Datasette 776634318 | |
754181646 | https://github.com/simonw/datasette/pull/1170#issuecomment-754181646 | https://api.github.com/repos/simonw/datasette/issues/1170 | MDEyOklzc3VlQ29tbWVudDc1NDE4MTY0Ng== | simonw 9599 | 2021-01-04T19:52:40Z | 2021-01-04T19:52:40Z | OWNER | Thank you very much! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Install Prettier via package.json 778126516 | |
753690280 | https://github.com/simonw/datasette/issues/983#issuecomment-753690280 | https://api.github.com/repos/simonw/datasette/issues/983 | MDEyOklzc3VlQ29tbWVudDc1MzY5MDI4MA== | simonw 9599 | 2021-01-03T23:13:30Z | 2021-01-03T23:13:30Z | OWNER | Oh that's interesting, I hadn't thought about plugins firing events - just responding to events fired by the rest of the application. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
JavaScript plugin hooks mechanism similar to pluggy 712260429 | |
753671902 | https://github.com/simonw/sqlite-utils/issues/219#issuecomment-753671902 | https://api.github.com/repos/simonw/sqlite-utils/issues/219 | MDEyOklzc3VlQ29tbWVudDc1MzY3MTkwMg== | simonw 9599 | 2021-01-03T20:31:04Z | 2021-01-03T20:32:13Z | OWNER | A |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
reset_counts() method and command 777707544 | |
753671235 | https://github.com/simonw/sqlite-utils/issues/219#issuecomment-753671235 | https://api.github.com/repos/simonw/sqlite-utils/issues/219 | MDEyOklzc3VlQ29tbWVudDc1MzY3MTIzNQ== | simonw 9599 | 2021-01-03T20:25:10Z | 2021-01-03T20:25:10Z | OWNER | To detect tables, look at the names of the triggers - |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
reset_counts() method and command 777707544 | |
753671009 | https://github.com/simonw/sqlite-utils/issues/219#issuecomment-753671009 | https://api.github.com/repos/simonw/sqlite-utils/issues/219 | MDEyOklzc3VlQ29tbWVudDc1MzY3MTAwOQ== | simonw 9599 | 2021-01-03T20:22:53Z | 2021-01-03T20:22:53Z | OWNER | I think this should be accompanied by a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
reset_counts() method and command 777707544 | |
753670833 | https://github.com/simonw/sqlite-utils/issues/219#issuecomment-753670833 | https://api.github.com/repos/simonw/sqlite-utils/issues/219 | MDEyOklzc3VlQ29tbWVudDc1MzY3MDgzMw== | simonw 9599 | 2021-01-03T20:20:54Z | 2021-01-03T20:20:54Z | OWNER | This is a little tricky. We should assume that the existing values in the But that means we need to figure out which tables in the database have the counts triggers defined. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
reset_counts() method and command 777707544 | |
753668099 | https://github.com/simonw/sqlite-utils/issues/215#issuecomment-753668099 | https://api.github.com/repos/simonw/sqlite-utils/issues/215 | MDEyOklzc3VlQ29tbWVudDc1MzY2ODA5OQ== | simonw 9599 | 2021-01-03T19:55:53Z | 2021-01-03T19:55:53Z | OWNER | So if you instantiate the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use _counts to speed up counts 777535402 | |
753665521 | https://github.com/simonw/sqlite-utils/issues/215#issuecomment-753665521 | https://api.github.com/repos/simonw/sqlite-utils/issues/215 | MDEyOklzc3VlQ29tbWVudDc1MzY2NTUyMQ== | simonw 9599 | 2021-01-03T19:31:33Z | 2021-01-03T19:31:33Z | OWNER | I'm having second thoughts about this being the default behaviour. It's pretty weird. I feel like HUGE databases that need this are rare, so having it on by default doesn't make sense. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use _counts to speed up counts 777535402 | |
753662490 | https://github.com/simonw/sqlite-utils/issues/215#issuecomment-753662490 | https://api.github.com/repos/simonw/sqlite-utils/issues/215 | MDEyOklzc3VlQ29tbWVudDc1MzY2MjQ5MA== | simonw 9599 | 2021-01-03T19:05:53Z | 2021-01-03T19:05:53Z | OWNER | Idea: a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use _counts to speed up counts 777535402 | |
753661292 | https://github.com/simonw/sqlite-utils/issues/215#issuecomment-753661292 | https://api.github.com/repos/simonw/sqlite-utils/issues/215 | MDEyOklzc3VlQ29tbWVudDc1MzY2MTI5Mg== | simonw 9599 | 2021-01-03T18:56:06Z | 2021-01-03T18:56:23Z | OWNER | Another option: on creation of the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use _counts to speed up counts 777535402 | |
753661158 | https://github.com/simonw/sqlite-utils/issues/215#issuecomment-753661158 | https://api.github.com/repos/simonw/sqlite-utils/issues/215 | MDEyOklzc3VlQ29tbWVudDc1MzY2MTE1OA== | simonw 9599 | 2021-01-03T18:55:16Z | 2021-01-03T18:55:16Z | OWNER | Alternative implementation: provided |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use _counts to speed up counts 777535402 | |
753660814 | https://github.com/simonw/sqlite-utils/issues/215#issuecomment-753660814 | https://api.github.com/repos/simonw/sqlite-utils/issues/215 | MDEyOklzc3VlQ29tbWVudDc1MzY2MDgxNA== | simonw 9599 | 2021-01-03T18:53:05Z | 2021-01-03T18:53:05Z | OWNER | Here's the current It's implemented on I'm a bit cautious about making that property so much more complex. In order to decide if it should try the
Then it can do the query, and if the query fails it can fall back on the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use _counts to speed up counts 777535402 | |
753660379 | https://github.com/simonw/sqlite-utils/issues/215#issuecomment-753660379 | https://api.github.com/repos/simonw/sqlite-utils/issues/215 | MDEyOklzc3VlQ29tbWVudDc1MzY2MDM3OQ== | simonw 9599 | 2021-01-03T18:50:15Z | 2021-01-03T18:50:15Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use _counts to speed up counts 777535402 | |
753659260 | https://github.com/simonw/sqlite-utils/issues/206#issuecomment-753659260 | https://api.github.com/repos/simonw/sqlite-utils/issues/206 | MDEyOklzc3VlQ29tbWVudDc1MzY1OTI2MA== | simonw 9599 | 2021-01-03T18:42:01Z | 2021-01-03T18:42:01Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils should suggest --csv if JSON parsing fails 761915790 | |
753657180 | https://github.com/simonw/datasette/issues/1169#issuecomment-753657180 | https://api.github.com/repos/simonw/datasette/issues/1169 | MDEyOklzc3VlQ29tbWVudDc1MzY1NzE4MA== | simonw 9599 | 2021-01-03T18:23:30Z | 2021-01-03T18:23:30Z | OWNER | Also welcome in that PR would be a bit of documentation for contributors, see #1167 - but no problem if you leave that out, I'm happy to add it later. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Prettier package not actually being cached 777677671 | |
753653260 | https://github.com/simonw/datasette/issues/1169#issuecomment-753653260 | https://api.github.com/repos/simonw/datasette/issues/1169 | MDEyOklzc3VlQ29tbWVudDc1MzY1MzI2MA== | simonw 9599 | 2021-01-03T17:54:40Z | 2021-01-03T17:54:40Z | OWNER | And @benpickles yes I would land that pull request straight away as-is. Thanks! |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Prettier package not actually being cached 777677671 | |
753653033 | https://github.com/simonw/datasette/issues/1169#issuecomment-753653033 | https://api.github.com/repos/simonw/datasette/issues/1169 | MDEyOklzc3VlQ29tbWVudDc1MzY1MzAzMw== | simonw 9599 | 2021-01-03T17:52:53Z | 2021-01-03T17:52:53Z | OWNER | Oh that's so frustrating! I was worried about that - I spotted a few runs that seemed faster and hoped that it meant that the package was coming out of the You've convinced me that Datasette itself should have a But... I'd really love to figure out a general pattern for using Any ideas? The best I can think of is for the workflow itself to write out a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Prettier package not actually being cached 777677671 | |
753570710 | https://github.com/simonw/datasette/issues/983#issuecomment-753570710 | https://api.github.com/repos/simonw/datasette/issues/983 | MDEyOklzc3VlQ29tbWVudDc1MzU3MDcxMA== | simonw 9599 | 2021-01-03T05:29:56Z | 2021-01-03T05:29:56Z | OWNER | I thought about using browser events, but they don't quite match the API that I'm looking to provide. In particular, the great thing about Pluggy is that if you have multiple handlers registered for a specific plugin hook each of those handlers can return a value, and Pluggy will combine those values into a list of replies. This is great for things like plugin hooks that add extra menu items - each plugin can return a menu item (maybe as a label/URL/click-callback object) and the calling code can then add all of those items to the menu. See https://docs.datasette.io/en/stable/plugin_hooks.html#table-actions-datasette-actor-database-table for a Python example. I'm on the fence about relying on JavaScript modules. I need to think about browser compatibility for them - but I'm already commited to requiring support for |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
JavaScript plugin hooks mechanism similar to pluggy 712260429 | |
753568428 | https://github.com/simonw/datasette/issues/1160#issuecomment-753568428 | https://api.github.com/repos/simonw/datasette/issues/1160 | MDEyOklzc3VlQ29tbWVudDc1MzU2ODQyOA== | simonw 9599 | 2021-01-03T05:02:32Z | 2021-01-03T05:02:32Z | OWNER | Should this command include a I thought about doing that for But maybe I can set sensible defaults for that with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"datasette insert" command and plugin hook 775666296 | |
753568264 | https://github.com/simonw/sqlite-utils/issues/202#issuecomment-753568264 | https://api.github.com/repos/simonw/sqlite-utils/issues/202 | MDEyOklzc3VlQ29tbWVudDc1MzU2ODI2NA== | simonw 9599 | 2021-01-03T05:00:24Z | 2021-01-03T05:00:24Z | OWNER | I'm not going to implement this, because it actually needs several additional options that already exist on |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils insert -f colname - for configuring full-text search 738514367 | |
753567969 | https://github.com/simonw/sqlite-utils/issues/202#issuecomment-753567969 | https://api.github.com/repos/simonw/sqlite-utils/issues/202 | MDEyOklzc3VlQ29tbWVudDc1MzU2Nzk2OQ== | simonw 9599 | 2021-01-03T04:55:17Z | 2021-01-03T04:55:43Z | OWNER | The long version of this can be |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils insert -f colname - for configuring full-text search 738514367 | |
753567932 | https://github.com/simonw/sqlite-utils/pull/203#issuecomment-753567932 | https://api.github.com/repos/simonw/sqlite-utils/issues/203 | MDEyOklzc3VlQ29tbWVudDc1MzU2NzkzMg== | simonw 9599 | 2021-01-03T04:54:43Z | 2021-01-03T04:54:43Z | OWNER | Another option: expand the The question then is what should I'd be inclined to say they should return We can label Since this would still be a breaking change in some minor edge-cases I'm thinking maybe 4.0 needs to happen in order to land this feature. I'm not opposed to doing that, I was just hoping it might be avoidable. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
changes to allow for compound foreign keys 743384829 | |
753567744 | https://github.com/simonw/sqlite-utils/pull/203#issuecomment-753567744 | https://api.github.com/repos/simonw/sqlite-utils/issues/203 | MDEyOklzc3VlQ29tbWVudDc1MzU2Nzc0NA== | simonw 9599 | 2021-01-03T04:51:44Z | 2021-01-03T04:51:44Z | OWNER | One way that this could avoid a breaking change would be to have This is a bit of an ugly API design, and it could still break existing code that encounters a compound foreign key for the first time - but it would leave code working for the more common case of a non-compound-foreign-key. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
changes to allow for compound foreign keys 743384829 | |
753567508 | https://github.com/simonw/sqlite-utils/pull/203#issuecomment-753567508 | https://api.github.com/repos/simonw/sqlite-utils/issues/203 | MDEyOklzc3VlQ29tbWVudDc1MzU2NzUwOA== | simonw 9599 | 2021-01-03T04:48:17Z | 2021-01-03T04:48:17Z | OWNER | Sorry for taking so long to review this! This approach looks great to me - being able to optionally pass a tuple anywhere the API currently expects a column is smart, and it's consistent with how the There's just one problem I can see with this: the way it changes the This represents a breaking change to the existing API - any code that expects As such, I'd have to bump the major version of Ideally I'd like to make this change in a way that doesn't represent an API compatibility break. I need to think a bit harder about how that might be achieved. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
changes to allow for compound foreign keys 743384829 | |
753566184 | https://github.com/simonw/sqlite-utils/issues/217#issuecomment-753566184 | https://api.github.com/repos/simonw/sqlite-utils/issues/217 | MDEyOklzc3VlQ29tbWVudDc1MzU2NjE4NA== | simonw 9599 | 2021-01-03T04:27:38Z | 2021-01-03T04:27:38Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rename .escape() to .quote() 777543336 | ||
753566156 | https://github.com/simonw/sqlite-utils/issues/216#issuecomment-753566156 | https://api.github.com/repos/simonw/sqlite-utils/issues/216 | MDEyOklzc3VlQ29tbWVudDc1MzU2NjE1Ng== | simonw 9599 | 2021-01-03T04:27:14Z | 2021-01-03T04:27:14Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
database.triggers_dict introspection property 777540352 | ||
753563757 | https://github.com/simonw/sqlite-utils/issues/218#issuecomment-753563757 | https://api.github.com/repos/simonw/sqlite-utils/issues/218 | MDEyOklzc3VlQ29tbWVudDc1MzU2Mzc1Nw== | simonw 9599 | 2021-01-03T03:49:51Z | 2021-01-03T03:49:51Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"sqlite-utils triggers" command 777560474 | ||
753545757 | https://github.com/simonw/sqlite-utils/issues/215#issuecomment-753545757 | https://api.github.com/repos/simonw/sqlite-utils/issues/215 | MDEyOklzc3VlQ29tbWVudDc1MzU0NTc1Nw== | simonw 9599 | 2021-01-02T23:58:07Z | 2021-01-02T23:58:07Z | OWNER | Thought: maybe there should be a One way that could happen is if a table is dropped and recreated - the counts in the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use _counts to speed up counts 777535402 | |
753545381 | https://github.com/simonw/sqlite-utils/issues/215#issuecomment-753545381 | https://api.github.com/repos/simonw/sqlite-utils/issues/215 | MDEyOklzc3VlQ29tbWVudDc1MzU0NTM4MQ== | simonw 9599 | 2021-01-02T23:52:52Z | 2021-01-02T23:52:52Z | OWNER | Idea: a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use _counts to speed up counts 777535402 | |
753544914 | https://github.com/simonw/sqlite-utils/issues/217#issuecomment-753544914 | https://api.github.com/repos/simonw/sqlite-utils/issues/217 | MDEyOklzc3VlQ29tbWVudDc1MzU0NDkxNA== | simonw 9599 | 2021-01-02T23:47:42Z | 2021-01-02T23:47:42Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rename .escape() to .quote() 777543336 | ||
753535488 | https://github.com/simonw/sqlite-utils/issues/213#issuecomment-753535488 | https://api.github.com/repos/simonw/sqlite-utils/issues/213 | MDEyOklzc3VlQ29tbWVudDc1MzUzNTQ4OA== | simonw 9599 | 2021-01-02T22:03:48Z | 2021-01-02T22:03:48Z | OWNER | I got this error while prototyping this:
It looks like that's because SQLite doesn't like triggers on a table that themselves then update that table - so I'm going to exclude the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
db.enable_counts() method 777529979 | |
753533775 | https://github.com/simonw/sqlite-utils/issues/213#issuecomment-753533775 | https://api.github.com/repos/simonw/sqlite-utils/issues/213 | MDEyOklzc3VlQ29tbWVudDc1MzUzMzc3NQ== | simonw 9599 | 2021-01-02T21:47:10Z | 2021-01-02T21:47:10Z | OWNER | I'm going to skip virtual tables, which I can identify using this property: https://github.com/simonw/sqlite-utils/blob/1cad7fad3e7a5b734088f5cc545b69a055e636da/sqlite_utils/db.py#L720-L726 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
db.enable_counts() method 777529979 | |
753524779 | https://github.com/simonw/datasette/issues/1168#issuecomment-753524779 | https://api.github.com/repos/simonw/datasette/issues/1168 | MDEyOklzc3VlQ29tbWVudDc1MzUyNDc3OQ== | simonw 9599 | 2021-01-02T20:19:26Z | 2021-01-02T20:19:26Z | OWNER | Idea: version the metadata scheme. If the table is called |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for storing metadata in _metadata tables 777333388 | |
753422324 | https://github.com/simonw/sqlite-utils/issues/212#issuecomment-753422324 | https://api.github.com/repos/simonw/sqlite-utils/issues/212 | MDEyOklzc3VlQ29tbWVudDc1MzQyMjMyNA== | simonw 9599 | 2021-01-02T03:00:34Z | 2021-01-02T03:00:34Z | OWNER | Here's a prototype:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for maintaining cache of table counts using triggers 777392020 | |
753406744 | https://github.com/simonw/sqlite-utils/issues/210#issuecomment-753406744 | https://api.github.com/repos/simonw/sqlite-utils/issues/210 | MDEyOklzc3VlQ29tbWVudDc1MzQwNjc0NA== | simonw 9599 | 2021-01-02T00:02:39Z | 2021-01-02T00:02:39Z | OWNER | It looks like https://github.com/ofajardo/pyreadr is a good library for this. I won't add this to Normally I'd write a That work is happening over here: https://github.com/simonw/datasette/issues/1160 - I'll close this issue in favour of a sometime-in-the-future |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support of RData files 767685961 | |
753405835 | https://github.com/simonw/sqlite-utils/issues/209#issuecomment-753405835 | https://api.github.com/repos/simonw/sqlite-utils/issues/209 | MDEyOklzc3VlQ29tbWVudDc1MzQwNTgzNQ== | simonw 9599 | 2021-01-01T23:52:06Z | 2021-01-01T23:52:06Z | OWNER | I just hit this one too. Such a weird bug! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test failure with sqlite 3.34 in test_cli.py::test_optimize 766156875 | |
753402423 | https://github.com/simonw/datasette/issues/1168#issuecomment-753402423 | https://api.github.com/repos/simonw/datasette/issues/1168 | MDEyOklzc3VlQ29tbWVudDc1MzQwMjQyMw== | simonw 9599 | 2021-01-01T23:16:05Z | 2021-01-01T23:16:05Z | OWNER | One catch: solving the "show me all metadata for everything in this Datasette instance" problem. Ideally there would be a SQLite table that can be queried for this. But the need to resolve the potentially complex set of precedence rules means that table would be difficult if not impossible to provide at run-time. Ideally a denormalized table would be available that featured the results of running those precedence rule calculations. But how to handle keeping this up-to-date? It would need to be recalculated any time a This is a much larger problem - but one potential fix would be to use triggers to maintain a "version number" for the Such a mechanism would have applications outside of just this |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for storing metadata in _metadata tables 777333388 | |
753401001 | https://github.com/simonw/datasette/issues/1168#issuecomment-753401001 | https://api.github.com/repos/simonw/datasette/issues/1168 | MDEyOklzc3VlQ29tbWVudDc1MzQwMTAwMQ== | simonw 9599 | 2021-01-01T23:01:45Z | 2021-01-01T23:01:45Z | OWNER | I need to prototype this. Could I do that as a plugin? I think so - I could try out the algorithm for loading metadata and display it on pages using some custom templates. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for storing metadata in _metadata tables 777333388 | |
753400420 | https://github.com/simonw/datasette/issues/1168#issuecomment-753400420 | https://api.github.com/repos/simonw/datasette/issues/1168 | MDEyOklzc3VlQ29tbWVudDc1MzQwMDQyMA== | simonw 9599 | 2021-01-01T22:53:58Z | 2021-01-01T22:53:58Z | OWNER | Precedence idea:
- First priority is non-_internal metadata from other databases - if those conflict then pick then the alphabetically-ordered-first database name wins
- Next priority: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for storing metadata in _metadata tables 777333388 | |
753400306 | https://github.com/simonw/datasette/issues/1168#issuecomment-753400306 | https://api.github.com/repos/simonw/datasette/issues/1168 | MDEyOklzc3VlQ29tbWVudDc1MzQwMDMwNg== | simonw 9599 | 2021-01-01T22:52:44Z | 2021-01-01T22:52:44Z | OWNER | Also: probably load column metadata as part of the table metadata rather than loading column metadata individually, since it's going to be rare to want the metadata for a single column rather than for an entire table full of columns. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for storing metadata in _metadata tables 777333388 | |
753400265 | https://github.com/simonw/datasette/issues/1168#issuecomment-753400265 | https://api.github.com/repos/simonw/datasette/issues/1168 | MDEyOklzc3VlQ29tbWVudDc1MzQwMDI2NQ== | simonw 9599 | 2021-01-01T22:52:09Z | 2021-01-01T22:52:09Z | OWNER | From an implementation perspective, I think the way this works is SQL queries read the relevant metadata from ALL available metadata tables, then Python code solves the precedence rules to produce the final, combined metadata for a database/table/column. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for storing metadata in _metadata tables 777333388 | |
753399635 | https://github.com/simonw/datasette/issues/1168#issuecomment-753399635 | https://api.github.com/repos/simonw/datasette/issues/1168 | MDEyOklzc3VlQ29tbWVudDc1MzM5OTYzNQ== | simonw 9599 | 2021-01-01T22:45:21Z | 2021-01-01T22:50:21Z | OWNER | Would also need to figure out the precedence rules:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for storing metadata in _metadata tables 777333388 | |
753399428 | https://github.com/simonw/datasette/issues/1168#issuecomment-753399428 | https://api.github.com/repos/simonw/datasette/issues/1168 | MDEyOklzc3VlQ29tbWVudDc1MzM5OTQyOA== | simonw 9599 | 2021-01-01T22:43:14Z | 2021-01-01T22:43:22Z | OWNER | Could this use a compound primary key on |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for storing metadata in _metadata tables 777333388 | |
753399366 | https://github.com/simonw/datasette/issues/1168#issuecomment-753399366 | https://api.github.com/repos/simonw/datasette/issues/1168 | MDEyOklzc3VlQ29tbWVudDc1MzM5OTM2Ng== | simonw 9599 | 2021-01-01T22:42:37Z | 2021-01-01T22:42:37Z | OWNER | So what would the database schema for this look like? I'm leaning towards a single table called If it's just a single | database | table | column | metadata | | --- | --- | --- | --- | | | mytable | | {"title": "My Table" } | | | mytable | mycolumn | {"description": "Column description" } | | otherdb | othertable | | {"description": "Table in another DB" } | If the The alternative to the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for storing metadata in _metadata tables 777333388 | |
753398542 | https://github.com/simonw/datasette/issues/1168#issuecomment-753398542 | https://api.github.com/repos/simonw/datasette/issues/1168 | MDEyOklzc3VlQ29tbWVudDc1MzM5ODU0Mg== | simonw 9599 | 2021-01-01T22:37:24Z | 2021-01-01T22:37:24Z | OWNER | The direction I'm leaning in now is the following:
Plugins that want to provide metadata can do so by populating a table. They could even maintain their own in-memory database for this, or they could write to the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for storing metadata in _metadata tables 777333388 |
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