issue_comments
10,495 rows sorted by updated_at descending
This data as json, CSV (advanced)
user 29
- simonw 529
- russss 11
- carlmjohnson 8
- jacobian 6
- janimo 3
- atomotic 3
- rgieseke 3
- macropin 3
- wsxiaoys 3
- ingenieroariel 2
- philroche 2
- bsmithgall 2
- raynae 2
- wulfmann 2
- gijs 1
- tomdyson 1
- ftrain 1
- stefanocudini 1
- jefftriplett 1
- psychemedia 1
- coleifer 1
- yozlet 1
- yschimke 1
- eaubin 1
- mhalle 1
- nickdirienzo 1
- wuhland 1
- jsancho-gpl 1
- coisnepe 1
id | html_url | issue_url | node_id | user | created_at | updated_at ▲ | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
391030083 | https://github.com/simonw/datasette/issues/243#issuecomment-391030083 | https://api.github.com/repos/simonw/datasette/issues/243 | MDEyOklzc3VlQ29tbWVudDM5MTAzMDA4Mw== | simonw 9599 | 2018-05-22T15:17:10Z | 2018-05-22T15:17:10Z | OWNER | See also #278 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
--spatialite option for datasette publish commands 318737808 | |
391025841 | https://github.com/simonw/datasette/issues/276#issuecomment-391025841 | https://api.github.com/repos/simonw/datasette/issues/276 | MDEyOklzc3VlQ29tbWVudDM5MTAyNTg0MQ== | simonw 9599 | 2018-05-22T15:06:36Z | 2018-05-22T15:06:36Z | OWNER | The other reason I mention plugins is that I have an idea to outlaw JavaScript entirely from Datasette core and instead encourage ALL JavaScript functionality to move into plugins.right now that just means CodeMirror. I may set up some of those plugins (like CodeMirror) as default dependencies so you get them from "pip install datasette". I like the neatness of saying that core Datasette is a very simple JSON + HTML application, then encouraging people to go completely wild with JavaScript in the plugins. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Handle spatialite geometry columns better 324835838 | |
390993861 | https://github.com/simonw/datasette/issues/278#issuecomment-390993861 | https://api.github.com/repos/simonw/datasette/issues/278 | MDEyOklzc3VlQ29tbWVudDM5MDk5Mzg2MQ== | simonw 9599 | 2018-05-22T13:40:14Z | 2018-05-22T14:38:05Z | OWNER | If we can't get |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Build smallest possible Docker image with Datasette plus recent SQLite (with json1) plus Spatialite 4.4.0 325294102 | |
391011268 | https://github.com/simonw/datasette/issues/272#issuecomment-391011268 | https://api.github.com/repos/simonw/datasette/issues/272 | MDEyOklzc3VlQ29tbWVudDM5MTAxMTI2OA== | simonw 9599 | 2018-05-22T14:28:12Z | 2018-05-22T14:28:12Z | OWNER | I think I can do this almost entirely within my existing BaseView class structure. First, decouple the async data() methods by teaching them to take a querystring object as an argument instead of a Sanic request object. The get() method can then send that new object instead of a request. Next teach the base class how to obey the ASGI protocol. I should be able to get support for both Sanic and uvicorn/daphne working in the same codebase, which will make it easy to compare their performance. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Port Datasette to ASGI 324188953 | |
391003285 | https://github.com/simonw/datasette/issues/273#issuecomment-391003285 | https://api.github.com/repos/simonw/datasette/issues/273 | MDEyOklzc3VlQ29tbWVudDM5MTAwMzI4NQ== | simonw 9599 | 2018-05-22T14:06:40Z | 2018-05-22T14:06:40Z | OWNER | That looks great. I don't think it's possible to derive the current commit version from the .zip downloaded directly from GitHub, so needing to pip install via git+https feels reasonable to me. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Figure out a way to have /-/version return current git commit hash 324451322 | |
391000659 | https://github.com/simonw/datasette/issues/276#issuecomment-391000659 | https://api.github.com/repos/simonw/datasette/issues/276 | MDEyOklzc3VlQ29tbWVudDM5MTAwMDY1OQ== | simonw 9599 | 2018-05-22T13:59:27Z | 2018-05-22T13:59:27Z | OWNER | Right now the plugin stuff is early enough that I'd like to get as many potential plugin hooks as possible crafted out A much easier to judge if they should be added as actual hooks if we have a working branch prototype of them. Some kind of mechanism for custom column display is already needed - eg there are columns where I want to say "render this as markdown" or "URLify any links in this text" - or even "use this date format" or "add commas to this integer". You can do it with a custom template but a lower-level mechanism would be nicer. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Handle spatialite geometry columns better 324835838 | |
390999055 | https://github.com/simonw/datasette/issues/255#issuecomment-390999055 | https://api.github.com/repos/simonw/datasette/issues/255 | MDEyOklzc3VlQ29tbWVudDM5MDk5OTA1NQ== | simonw 9599 | 2018-05-22T13:54:55Z | 2018-05-22T13:54:55Z | OWNER | This shipped in Datasette 0.22. Here's my blog post about it: https://simonwillison.net/2018/May/20/datasette-facets/ |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Facets 322477187 | |
390993397 | https://github.com/simonw/datasette/issues/278#issuecomment-390993397 | https://api.github.com/repos/simonw/datasette/issues/278 | MDEyOklzc3VlQ29tbWVudDM5MDk5MzM5Nw== | simonw 9599 | 2018-05-22T13:38:57Z | 2018-05-22T13:38:57Z | OWNER | Useful GitHub code search: https://github.com/search?utf8=✓&q=%22libspatialite-4.4.0%22+%22RC0%22&type=Code |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Build smallest possible Docker image with Datasette plus recent SQLite (with json1) plus Spatialite 4.4.0 325294102 | |
390991640 | https://github.com/simonw/datasette/issues/278#issuecomment-390991640 | https://api.github.com/repos/simonw/datasette/issues/278 | MDEyOklzc3VlQ29tbWVudDM5MDk5MTY0MA== | simonw 9599 | 2018-05-22T13:33:46Z | 2018-05-22T13:33:46Z | OWNER | For SpatiaLite this example may be useful - though it's building 4.3.0 and not 4.4.0: https://github.com/terranodo/spatialite-docker/blob/master/Dockerfile |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Build smallest possible Docker image with Datasette plus recent SQLite (with json1) plus Spatialite 4.4.0 325294102 | |
390804333 | https://github.com/simonw/datasette/pull/277#issuecomment-390804333 | https://api.github.com/repos/simonw/datasette/issues/277 | MDEyOklzc3VlQ29tbWVudDM5MDgwNDMzMw== | simonw 9599 | 2018-05-21T22:40:16Z | 2018-05-21T22:43:50Z | OWNER | We should merge this before refactoring the tests though, because that way we don't couple the new tests to the verification of this change. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor inspect logic 324836533 | |
390795067 | https://github.com/simonw/datasette/issues/276#issuecomment-390795067 | https://api.github.com/repos/simonw/datasette/issues/276 | MDEyOklzc3VlQ29tbWVudDM5MDc5NTA2Nw== | russss 45057 | 2018-05-21T21:55:57Z | 2018-05-21T21:55:57Z | CONTRIBUTOR | Well, we do have the capability to detect spatialite so my intention certainly wasn't to require it. I can see the advantage of having it as a plugin but it does touch a number of points in the code. I think I'm going to attack this by refactoring the necessary bits and seeing where that leads (which was my plan anyway). I think my main concern is - if I add certain plugin hooks for this, is anything else ever going to use them? I'm not sure I have an answer to that question yet, either way. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Handle spatialite geometry columns better 324835838 | |
390707760 | https://github.com/simonw/datasette/issues/276#issuecomment-390707760 | https://api.github.com/repos/simonw/datasette/issues/276 | MDEyOklzc3VlQ29tbWVudDM5MDcwNzc2MA== | simonw 9599 | 2018-05-21T16:30:35Z | 2018-05-21T16:30:35Z | OWNER | This probably needs to be in a plugin simply because getting Spatialite compiled and installed is a bit of a pain. It's a great opportunity to expand the plugin hooks in useful ways though. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Handle spatialite geometry columns better 324835838 | |
390707183 | https://github.com/simonw/datasette/pull/277#issuecomment-390707183 | https://api.github.com/repos/simonw/datasette/issues/277 | MDEyOklzc3VlQ29tbWVudDM5MDcwNzE4Mw== | simonw 9599 | 2018-05-21T16:28:39Z | 2018-05-21T16:28:39Z | OWNER | This is definitely a big improvement. I'd like to refactor the unit tests that cover .inspect() too - currently they are a huge ugly blob at the top of test_api.py |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor inspect logic 324836533 | |
390689406 | https://github.com/simonw/datasette/issues/247#issuecomment-390689406 | https://api.github.com/repos/simonw/datasette/issues/247 | MDEyOklzc3VlQ29tbWVudDM5MDY4OTQwNg== | jsancho-gpl 11912854 | 2018-05-21T15:29:31Z | 2018-05-21T15:29:31Z | NONE | I've changed my mind about the way to support external connectors aside of SQLite and I'm working in a more simple style that respects the original Datasette, i.e. less refactoring. I present you a version of Datasette wich supports other database connectors and a Datasette connector for HDF5/PyTables files. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
SQLite code decoupled from Datasette 319449852 | |
390577711 | https://github.com/simonw/datasette/pull/258#issuecomment-390577711 | https://api.github.com/repos/simonw/datasette/issues/258 | MDEyOklzc3VlQ29tbWVudDM5MDU3NzcxMQ== | philroche 247131 | 2018-05-21T07:38:15Z | 2018-05-21T07:38:15Z | NONE | Excellent, I was not aware of the auto redirect to the new hash. My bad This solves my use case. I do agree that your suggested --no-url-hash approach is much neater. I will investigate |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add new metadata key persistent_urls which removes the hash from all database urls 322741659 | |
390496376 | https://github.com/simonw/datasette/issues/274#issuecomment-390496376 | https://api.github.com/repos/simonw/datasette/issues/274 | MDEyOklzc3VlQ29tbWVudDM5MDQ5NjM3Ng== | simonw 9599 | 2018-05-20T17:04:55Z | 2018-05-20T17:04:55Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rename --limit to --config, add --help-config 324652142 | ||
390433040 | https://github.com/simonw/datasette/issues/274#issuecomment-390433040 | https://api.github.com/repos/simonw/datasette/issues/274 | MDEyOklzc3VlQ29tbWVudDM5MDQzMzA0MA== | simonw 9599 | 2018-05-19T21:12:42Z | 2018-05-20T16:01:03Z | OWNER | Could also support these as optional environment variables - |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rename --limit to --config, add --help-config 324652142 | |
390250253 | https://github.com/simonw/datasette/issues/273#issuecomment-390250253 | https://api.github.com/repos/simonw/datasette/issues/273 | MDEyOklzc3VlQ29tbWVudDM5MDI1MDI1Mw== | rgieseke 198537 | 2018-05-18T15:49:52Z | 2018-05-18T15:49:52Z | CONTRIBUTOR | Shouldn't versioneer do that? E.g. 0.21+2.g1076c97 You'd need to install via |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Figure out a way to have /-/version return current git commit hash 324451322 | |
390105943 | https://github.com/simonw/datasette/issues/264#issuecomment-390105943 | https://api.github.com/repos/simonw/datasette/issues/264 | MDEyOklzc3VlQ29tbWVudDM5MDEwNTk0Mw== | simonw 9599 | 2018-05-18T06:18:00Z | 2018-05-18T06:18:00Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make it possible to customize various facet settings 323673899 | ||
390105147 | https://github.com/simonw/datasette/issues/270#issuecomment-390105147 | https://api.github.com/repos/simonw/datasette/issues/270 | MDEyOklzc3VlQ29tbWVudDM5MDEwNTE0Nw== | simonw 9599 | 2018-05-18T06:13:07Z | 2018-05-18T06:13:07Z | OWNER | I'm going to add a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
--limit= CLI option for setting limits 323830051 | |
389989615 | https://github.com/simonw/datasette/issues/271#issuecomment-389989615 | https://api.github.com/repos/simonw/datasette/issues/271 | MDEyOklzc3VlQ29tbWVudDM4OTk4OTYxNQ== | simonw 9599 | 2018-05-17T19:56:13Z | 2018-05-17T19:56:13Z | OWNER | From https://www.sqlite.org/c3ref/open.html
So this would probably have to be a new mode, |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for automatically picking up changes when on-disk .db file changes 324162476 | |
389989015 | https://github.com/simonw/datasette/issues/271#issuecomment-389989015 | https://api.github.com/repos/simonw/datasette/issues/271 | MDEyOklzc3VlQ29tbWVudDM4OTk4OTAxNQ== | simonw 9599 | 2018-05-17T19:54:10Z | 2018-05-17T19:54:10Z | OWNER | This is a departure from how Datasette has been designed so far, and it may turn out that it's not feasible or it requires too many philosophical changes to be worthwhile. If we CAN do it though it would mean Datasette could stay running pointed at a directory on disk and new SQLite databases could be dropped into that directory by another process and served directly as they become available. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for automatically picking up changes when on-disk .db file changes 324162476 | |
389894382 | https://github.com/simonw/datasette/issues/266#issuecomment-389894382 | https://api.github.com/repos/simonw/datasette/issues/266 | MDEyOklzc3VlQ29tbWVudDM4OTg5NDM4Mg== | simonw 9599 | 2018-05-17T14:51:13Z | 2018-05-17T14:53:23Z | OWNER | I should definitely sanity check if the Problem here is that we run SQL queries in a thread pool. A query that returns millions of rows would presumably tie up a SQL thread until it has finished, which could block the server. This may be a reason to stick with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Export to CSV 323681589 | |
389893810 | https://github.com/simonw/datasette/issues/266#issuecomment-389893810 | https://api.github.com/repos/simonw/datasette/issues/266 | MDEyOklzc3VlQ29tbWVudDM4OTg5MzgxMA== | simonw 9599 | 2018-05-17T14:49:35Z | 2018-05-17T14:49:35Z | OWNER | Idea: add a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Export to CSV 323681589 | |
389626715 | https://github.com/simonw/datasette/issues/266#issuecomment-389626715 | https://api.github.com/repos/simonw/datasette/issues/266 | MDEyOklzc3VlQ29tbWVudDM4OTYyNjcxNQ== | simonw 9599 | 2018-05-16T18:50:46Z | 2018-05-16T18:50:46Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Export to CSV 323681589 | |
389608473 | https://github.com/simonw/datasette/issues/266#issuecomment-389608473 | https://api.github.com/repos/simonw/datasette/issues/266 | MDEyOklzc3VlQ29tbWVudDM4OTYwODQ3Mw== | simonw 9599 | 2018-05-16T17:52:35Z | 2018-05-16T17:54:11Z | OWNER | There are some code examples in this issue which should help with the streaming part: https://github.com/channelcat/sanic/issues/1067 Also https://github.com/channelcat/sanic/blob/master/docs/sanic/streaming.md#response-streaming |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Export to CSV 323681589 | |
389592566 | https://github.com/simonw/datasette/issues/266#issuecomment-389592566 | https://api.github.com/repos/simonw/datasette/issues/266 | MDEyOklzc3VlQ29tbWVudDM4OTU5MjU2Ng== | simonw 9599 | 2018-05-16T17:01:29Z | 2018-05-16T17:02:21Z | OWNER | Let's provide a CSV Dialect definition too: https://frictionlessdata.io/specs/csv-dialect/ - via https://twitter.com/drewdaraabrams/status/996794915680997382 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Export to CSV 323681589 | |
389579762 | https://github.com/simonw/datasette/issues/266#issuecomment-389579762 | https://api.github.com/repos/simonw/datasette/issues/266 | MDEyOklzc3VlQ29tbWVudDM4OTU3OTc2Mg== | simonw 9599 | 2018-05-16T16:21:12Z | 2018-05-16T16:21:12Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Export to CSV 323681589 | |
389579363 | https://github.com/simonw/datasette/issues/266#issuecomment-389579363 | https://api.github.com/repos/simonw/datasette/issues/266 | MDEyOklzc3VlQ29tbWVudDM4OTU3OTM2Mw== | simonw 9599 | 2018-05-16T16:20:06Z | 2018-05-16T16:20:06Z | OWNER | I started a thread on Twitter discussing various CSV output dialects: https://twitter.com/simonw/status/996783395504979968 - I want to pick defaults which will work as well as possible for whatever tools people might be using to consume the data. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Export to CSV 323681589 | |
389572201 | https://github.com/simonw/datasette/issues/266#issuecomment-389572201 | https://api.github.com/repos/simonw/datasette/issues/266 | MDEyOklzc3VlQ29tbWVudDM4OTU3MjIwMQ== | simonw 9599 | 2018-05-16T15:58:43Z | 2018-05-16T16:00:47Z | OWNER | This will likely be implemented in the This means it will take ALL arguments that are available to the In streaming mode, things will behave a little bit differently - in particular, if It can't include a length header because we don't know how many bytes it will be CSV output will throw an error if the endpoint doesn't have rows and columns keys eg So the implementation...
I like that this takes advantage of efficient pagination. It may not work so well for views which use offset/limit though. It won't work at all for custom SQL because custom SQL doesn't support _next= pagination. That's fine. For views... easiest fix is to cut off after first X000 records. That seems OK. View JSON would need to include a property that the mechanism can identify. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Export to CSV 323681589 | |
389566147 | https://github.com/simonw/datasette/issues/265#issuecomment-389566147 | https://api.github.com/repos/simonw/datasette/issues/265 | MDEyOklzc3VlQ29tbWVudDM4OTU2NjE0Nw== | simonw 9599 | 2018-05-16T15:41:42Z | 2018-05-16T15:41:42Z | OWNER | An official demo instance of Datasette dedicated to this use-case would be useful, especially if it was automatically deployed by Travis for every commit to master that passes the tests. Maybe there should be a permanent version of it deployed for each released version too? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add links to example Datasette instances to appropiate places in docs 323677499 | |
389563719 | https://github.com/simonw/datasette/issues/263#issuecomment-389563719 | https://api.github.com/repos/simonw/datasette/issues/263 | MDEyOklzc3VlQ29tbWVudDM4OTU2MzcxOQ== | simonw 9599 | 2018-05-16T15:34:46Z | 2018-05-16T15:34:46Z | OWNER | The underlying mechanics for the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Facets should not execute for ?shape=array|object 323671577 | |
389562708 | https://github.com/simonw/datasette/issues/255#issuecomment-389562708 | https://api.github.com/repos/simonw/datasette/issues/255 | MDEyOklzc3VlQ29tbWVudDM4OTU2MjcwOA== | simonw 9599 | 2018-05-16T15:32:12Z | 2018-05-16T15:32:12Z | OWNER | This is now landed in master, ready for the next release. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Facets 322477187 | |
389546040 | https://github.com/simonw/datasette/issues/255#issuecomment-389546040 | https://api.github.com/repos/simonw/datasette/issues/255 | MDEyOklzc3VlQ29tbWVudDM4OTU0NjA0MA== | simonw 9599 | 2018-05-16T14:47:34Z | 2018-05-16T14:47:34Z | OWNER | Latest demo - now with multiple columns: https://datasette-suggested-facets-demo.now.sh/sf-trees-02c8ef1/Street_Tree_List?_facet=qCaretaker&_facet=qCareAssistant&_facet=qLegalStatus |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Facets 322477187 | |
389536870 | https://github.com/simonw/datasette/pull/258#issuecomment-389536870 | https://api.github.com/repos/simonw/datasette/issues/258 | MDEyOklzc3VlQ29tbWVudDM4OTUzNjg3MA== | simonw 9599 | 2018-05-16T14:22:31Z | 2018-05-16T14:22:31Z | OWNER | The principle benefit provided by the hash URLs is that Datasette can set a far-future cache expiry header on every response. This is particularly useful for JavaScript API work as it makes fantastic use of the browser's cache. It also means that if you are serving your API from behind a caching proxy like Cloudflare you get a fantastic cache hit rate. An option to serve without persistent hashes would also need to turn off the cache headers. Maybe the option should support both? If you hit a page with the hash in the URL you still get the cache headers, but hits to the URL without the hash serve uncashed content directly. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add new metadata key persistent_urls which removes the hash from all database urls 322741659 | |
389397457 | https://github.com/simonw/datasette/issues/255#issuecomment-389397457 | https://api.github.com/repos/simonw/datasette/issues/255 | MDEyOklzc3VlQ29tbWVudDM4OTM5NzQ1Nw== | simonw 9599 | 2018-05-16T05:20:04Z | 2018-05-16T05:20:04Z | OWNER | Maybe |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Facets 322477187 | |
389386919 | https://github.com/simonw/datasette/issues/255#issuecomment-389386919 | https://api.github.com/repos/simonw/datasette/issues/255 | MDEyOklzc3VlQ29tbWVudDM4OTM4NjkxOQ== | simonw 9599 | 2018-05-16T03:57:47Z | 2018-05-16T03:58:30Z | OWNER | I updated that demo to demonstrate the new foreign key label expansions: https://datasette-suggested-facets-demo.now.sh/sf-trees-02c8ef1/Street_Tree_List?_facet=qLegalStatus |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Facets 322477187 | |
389386142 | https://github.com/simonw/datasette/pull/258#issuecomment-389386142 | https://api.github.com/repos/simonw/datasette/issues/258 | MDEyOklzc3VlQ29tbWVudDM4OTM4NjE0Mg== | simonw 9599 | 2018-05-16T03:51:13Z | 2018-05-16T03:51:13Z | OWNER | The URL does persist across deployments already, in that you can use the URL without the hash and it will redirect to the current location. Here's an example of that: https://san-francisco.datasettes.com/sf-trees/Street_Tree_List.json This also works if you attempt to hit the incorrect hash, e.g. if you have deployed a new version of the database with an updated hash. The old hash will redirect, e.g. https://san-francisco.datasettes.com/sf-trees-c4b972c/Street_Tree_List.json If you serve Datasette from a HTTP/2 proxy (I've been using Cloudflare for this) you won't even have to pay the cost of the redirect - Datasette sends a All of that said... I'm not at all opposed to this feature. For consistency with other Datasette options (e.g.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add new metadata key persistent_urls which removes the hash from all database urls 322741659 | |
389147608 | https://github.com/simonw/datasette/issues/255#issuecomment-389147608 | https://api.github.com/repos/simonw/datasette/issues/255 | MDEyOklzc3VlQ29tbWVudDM4OTE0NzYwOA== | simonw 9599 | 2018-05-15T12:24:46Z | 2018-05-15T12:24:46Z | OWNER | New demo (published with After turning on a couple of suggested facets... https://datasette-suggested-facets-demo.now.sh/fivethirtyeight-2628db9/comic-characters%2Fmarvel-wikia-data?_facet=SEX&_facet=ID |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Facets 322477187 | |
389145872 | https://github.com/simonw/datasette/issues/255#issuecomment-389145872 | https://api.github.com/repos/simonw/datasette/issues/255 | MDEyOklzc3VlQ29tbWVudDM4OTE0NTg3Mg== | simonw 9599 | 2018-05-15T12:17:52Z | 2018-05-15T12:17:52Z | OWNER | Activity has now moved to this branch: https://github.com/simonw/datasette/commits/suggested-facets |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Facets 322477187 | |
388987044 | https://github.com/simonw/datasette/issues/251#issuecomment-388987044 | https://api.github.com/repos/simonw/datasette/issues/251 | MDEyOklzc3VlQ29tbWVudDM4ODk4NzA0NA== | simonw 9599 | 2018-05-14T22:47:55Z | 2018-05-14T22:47:55Z | OWNER | This work is now happening in the facets branch. Closing this in favor of #255. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Explore "distinct values for column" in inspect() 320592643 | |
388797919 | https://github.com/simonw/datasette/issues/259#issuecomment-388797919 | https://api.github.com/repos/simonw/datasette/issues/259 | MDEyOklzc3VlQ29tbWVudDM4ODc5NzkxOQ== | simonw 9599 | 2018-05-14T12:23:11Z | 2018-05-14T12:23:11Z | OWNER | For M2M to work we will need a mechanism for applying IN queries to the table view, so you can select multiple M2M filters. Maybe this would work:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
inspect() should detect many-to-many relationships 322787470 | |
388784787 | https://github.com/simonw/datasette/issues/255#issuecomment-388784787 | https://api.github.com/repos/simonw/datasette/issues/255 | MDEyOklzc3VlQ29tbWVudDM4ODc4NDc4Nw== | simonw 9599 | 2018-05-14T11:28:05Z | 2018-05-14T11:28:05Z | OWNER | To decide which facets to suggest: for each column, is the unique value count less than the number of rows matching the current query or is it less than 20 (if we are showing more than 20 rows)? Maybe only do this if there are less than ten non-float columns. Or always try for foreign keys and booleans, then if there are none of those try indexed text and integer fields, then finally try non-indexed text and integer fields but only if there are less than ten. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Facets 322477187 | |
388784063 | https://github.com/simonw/datasette/issues/255#issuecomment-388784063 | https://api.github.com/repos/simonw/datasette/issues/255 | MDEyOklzc3VlQ29tbWVudDM4ODc4NDA2Mw== | simonw 9599 | 2018-05-14T11:25:00Z | 2018-05-14T11:25:15Z | OWNER | Can I get facets working across many2many relationships? This would be fiendishly useful, but the querystring and |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Facets 322477187 | |
388686463 | https://github.com/simonw/datasette/issues/255#issuecomment-388686463 | https://api.github.com/repos/simonw/datasette/issues/255 | MDEyOklzc3VlQ29tbWVudDM4ODY4NjQ2Mw== | simonw 9599 | 2018-05-14T03:23:44Z | 2018-05-14T03:25:22Z | OWNER | It would be neat if there was a mechanism for calculating aggregates per facet - e.g. calculating the sum() of specific columns against each facet result on https://datasette-facets-demo.now.sh/fivethirtyeight-2628db9/nba-elo%2Fnbaallelo?_facet=lg_id&_facet=fran_id&lg_id=ABA&_facet=team_id |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Facets 322477187 | |
388684356 | https://github.com/simonw/datasette/issues/256#issuecomment-388684356 | https://api.github.com/repos/simonw/datasette/issues/256 | MDEyOklzc3VlQ29tbWVudDM4ODY4NDM1Ng== | simonw 9599 | 2018-05-14T03:05:37Z | 2018-05-14T03:05:37Z | OWNER | I just landed pull request #257 - I haven't refactored the tests, I may do that later if it looks worthwhile. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Break up app.py into separate view modules 322551723 | |
388645828 | https://github.com/simonw/datasette/issues/255#issuecomment-388645828 | https://api.github.com/repos/simonw/datasette/issues/255 | MDEyOklzc3VlQ29tbWVudDM4ODY0NTgyOA== | simonw 9599 | 2018-05-13T18:18:56Z | 2018-05-13T18:20:02Z | OWNER | I may be able to run the SQL for all of the facet counts in one go using a WITH CTE query - will have to microbenchmark this to make sure it is worthwhile: https://datasette-facets-demo.now.sh/fivethirtyeight-2628db9?sql=with+blah+as+%28select++from+%5Bcollege-majors%2Fall-ages%5D%29%0D%0Aselect++from+%28select+%22Major_category%22%2C+Major_category%2C+count%28%29+as+n+from%0D%0Ablah+group+by+Major_category+order+by+n+desc+limit+10%29%0D%0Aunion+all%0D%0Aselect++from+%28select+%22Major_category2%22%2C+Major_category%2C+count%28*%29+as+n+from%0D%0Ablah+group+by+Major_category+order+by+n+desc+limit+10%29 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Facets 322477187 | |
388628966 | https://github.com/simonw/datasette/pull/257#issuecomment-388628966 | https://api.github.com/repos/simonw/datasette/issues/257 | MDEyOklzc3VlQ29tbWVudDM4ODYyODk2Ng== | simonw 9599 | 2018-05-13T14:00:47Z | 2018-05-13T14:06:35Z | OWNER | Running specific tests:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor views 322591993 | |
388627281 | https://github.com/simonw/datasette/pull/257#issuecomment-388627281 | https://api.github.com/repos/simonw/datasette/issues/257 | MDEyOklzc3VlQ29tbWVudDM4ODYyNzI4MQ== | simonw 9599 | 2018-05-13T13:36:21Z | 2018-05-13T13:36:21Z | OWNER | https://github.com/rtfd/readthedocs.org/issues/3812#issuecomment-373780860 suggests Python 3.5.2 may have the fix. Yup, that worked: ``` pyenv install 3.5.2 rm -rf venv35 /Users/simonw/.pyenv/versions/3.5.2/bin/python -mvenv venv35 source venv35/bin/activate Not sure why I need this in my local environment but I do:pip install datasette_plugin_demos python setup.py test ``` This is now giving me the same test failure locally that I am seeing in Travis. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor views 322591993 | |
388626804 | https://github.com/simonw/datasette/pull/257#issuecomment-388626804 | https://api.github.com/repos/simonw/datasette/issues/257 | MDEyOklzc3VlQ29tbWVudDM4ODYyNjgwNA== | simonw 9599 | 2018-05-13T13:28:20Z | 2018-05-13T13:28:20Z | OWNER | Unfortunately, running
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor views 322591993 | |
388626721 | https://github.com/simonw/datasette/pull/257#issuecomment-388626721 | https://api.github.com/repos/simonw/datasette/issues/257 | MDEyOklzc3VlQ29tbWVudDM4ODYyNjcyMQ== | simonw 9599 | 2018-05-13T13:27:04Z | 2018-05-13T13:27:04Z | OWNER | I managed to get Python 3.5.0 running on my laptop using pyenv. Here's the incantation I used: ``` Install pyenv using homebrew (turns out I already had it)brew install pyenv Check which versions of Python I have installedpyenv versions Install Python 3.5.0pyenv install 3.5.0 Figure out where pyenv has been installing thingspyenv root Check I can run my newly installed Python 3.5.0/Users/simonw/.pyenv/versions/3.5.0/bin/python Use it to create a new virtualenv/Users/simonw/.pyenv/versions/3.5.0/bin/python -mvenv venv35 source venv35/bin/activate Install datasette into that virtualenvpython setup.py install ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor views 322591993 | |
388625703 | https://github.com/simonw/datasette/pull/257#issuecomment-388625703 | https://api.github.com/repos/simonw/datasette/issues/257 | MDEyOklzc3VlQ29tbWVudDM4ODYyNTcwMw== | simonw 9599 | 2018-05-13T13:10:09Z | 2018-05-13T13:10:09Z | OWNER | I'm still seeing intermittent Python 3.5 failures due to dictionary ordering differences. https://travis-ci.org/simonw/datasette/jobs/378356802 ```
To solve these cleanly I need to be able to run Python 3.5 on my local laptop rather than relying on Travis every time. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refactor views 322591993 | |
388588998 | https://github.com/simonw/datasette/issues/255#issuecomment-388588998 | https://api.github.com/repos/simonw/datasette/issues/255 | MDEyOklzc3VlQ29tbWVudDM4ODU4ODk5OA== | simonw 9599 | 2018-05-12T22:57:30Z | 2018-05-12T23:00:24Z | OWNER | A few demos:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Facets 322477187 | |
388589072 | https://github.com/simonw/datasette/issues/255#issuecomment-388589072 | https://api.github.com/repos/simonw/datasette/issues/255 | MDEyOklzc3VlQ29tbWVudDM4ODU4OTA3Mg== | simonw 9599 | 2018-05-12T22:59:07Z | 2018-05-12T22:59:07Z | OWNER | I need to decide how to display these. They currently look like this: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Facets 322477187 | |
388588011 | https://github.com/simonw/datasette/issues/255#issuecomment-388588011 | https://api.github.com/repos/simonw/datasette/issues/255 | MDEyOklzc3VlQ29tbWVudDM4ODU4ODAxMQ== | simonw 9599 | 2018-05-12T22:33:39Z | 2018-05-12T22:33:39Z | OWNER | Initial documentation: http://datasette.readthedocs.io/en/latest/facets.html |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Facets 322477187 | |
388587855 | https://github.com/simonw/datasette/issues/255#issuecomment-388587855 | https://api.github.com/repos/simonw/datasette/issues/255 | MDEyOklzc3VlQ29tbWVudDM4ODU4Nzg1NQ== | simonw 9599 | 2018-05-12T22:30:23Z | 2018-05-12T22:30:23Z | OWNER | Adding some TODOs to the original description (so they show up as a todo progress bar) |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Facets 322477187 | |
388550742 | https://github.com/simonw/datasette/issues/253#issuecomment-388550742 | https://api.github.com/repos/simonw/datasette/issues/253 | MDEyOklzc3VlQ29tbWVudDM4ODU1MDc0Mg== | simonw 9599 | 2018-05-12T12:09:02Z | 2018-05-12T12:09:02Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Documentation explaining how to use SQLite FTS with Datasette 321631020 | ||
388525357 | https://github.com/simonw/datasette/issues/255#issuecomment-388525357 | https://api.github.com/repos/simonw/datasette/issues/255 | MDEyOklzc3VlQ29tbWVudDM4ODUyNTM1Nw== | simonw 9599 | 2018-05-12T03:01:14Z | 2018-05-12T03:01:14Z | OWNER | Facet counts will be generated by extra SQL queries with their own aggressive time limit. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Facets 322477187 | |
388360255 | https://github.com/simonw/datasette/issues/254#issuecomment-388360255 | https://api.github.com/repos/simonw/datasette/issues/254 | MDEyOklzc3VlQ29tbWVudDM4ODM2MDI1NQ== | simonw 9599 | 2018-05-11T13:16:09Z | 2018-05-11T22:45:31Z | OWNER | Do you have an example I can look at? I think I have a possible route for fixing this, but it's pretty tricky (it involves adding a full SQL statement parser, but that's needed for some other potential improvements as well). In the meantime, is this causing actual errors for you or is it more of an inconvenience (form fields being displayed that don't actually do anything)? Another potential solution here could be to allow canned queries to optionally declare their parameters in metadata.json |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Escaping named parameters in canned queries 322283067 | |
388497467 | https://github.com/simonw/datasette/issues/254#issuecomment-388497467 | https://api.github.com/repos/simonw/datasette/issues/254 | MDEyOklzc3VlQ29tbWVudDM4ODQ5NzQ2Nw== | simonw 9599 | 2018-05-11T22:06:00Z | 2018-05-11T22:06:34Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Escaping named parameters in canned queries 322283067 | ||
388367027 | https://github.com/simonw/datasette/issues/254#issuecomment-388367027 | https://api.github.com/repos/simonw/datasette/issues/254 | MDEyOklzc3VlQ29tbWVudDM4ODM2NzAyNw== | philroche 247131 | 2018-05-11T13:41:46Z | 2018-05-11T13:41:46Z | NONE | An example deployment @ https://datasette-zkcvlwdrhl.now.sh/simplestreams-270f20c/cloudimage?content_id__exact=com.ubuntu.cloud%3Areleased%3Adownload It is not causing errors, more of an inconvenience. I have worked around it using a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Escaping named parameters in canned queries 322283067 | |
386879878 | https://github.com/simonw/datasette/issues/251#issuecomment-386879878 | https://api.github.com/repos/simonw/datasette/issues/251 | MDEyOklzc3VlQ29tbWVudDM4Njg3OTg3OA== | simonw 9599 | 2018-05-06T13:34:57Z | 2018-05-06T13:34:57Z | OWNER | If I'm going to expand column introspection in this way it would be useful to also capture column type information. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Explore "distinct values for column" in inspect() 320592643 | |
386879840 | https://github.com/simonw/datasette/issues/251#issuecomment-386879840 | https://api.github.com/repos/simonw/datasette/issues/251 | MDEyOklzc3VlQ29tbWVudDM4Njg3OTg0MA== | simonw 9599 | 2018-05-06T13:34:24Z | 2018-05-06T13:34:24Z | OWNER | Here's a quick demo of that exploration: https://datasette-distinct-column-values.now.sh/-/inspect Example output:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Explore "distinct values for column" in inspect() 320592643 | |
386879509 | https://github.com/simonw/datasette/issues/251#issuecomment-386879509 | https://api.github.com/repos/simonw/datasette/issues/251 | MDEyOklzc3VlQ29tbWVudDM4Njg3OTUwOQ== | simonw 9599 | 2018-05-06T13:29:26Z | 2018-05-06T13:29:26Z | OWNER | We can solve this using the
Then we look at the number of rows returned. If it's 21 or more we know that this table had more than 21 distinct values, so we'll treat it as "unlimited". Likewise, if the SQL times out before 20ms is up we will skip this introspection. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Explore "distinct values for column" in inspect() 320592643 | |
386840806 | https://github.com/simonw/datasette/issues/237#issuecomment-386840806 | https://api.github.com/repos/simonw/datasette/issues/237 | MDEyOklzc3VlQ29tbWVudDM4Njg0MDgwNg== | simonw 9599 | 2018-05-05T22:56:42Z | 2018-05-05T22:56:42Z | OWNER | Demo:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support for ?_search_colname=blah searches 317475156 | |
386840307 | https://github.com/simonw/datasette/issues/237#issuecomment-386840307 | https://api.github.com/repos/simonw/datasette/issues/237 | MDEyOklzc3VlQ29tbWVudDM4Njg0MDMwNw== | simonw 9599 | 2018-05-05T22:45:45Z | 2018-05-05T22:45:45Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support for ?_search_colname=blah searches 317475156 | ||
386692534 | https://github.com/simonw/datasette/issues/249#issuecomment-386692534 | https://api.github.com/repos/simonw/datasette/issues/249 | MDEyOklzc3VlQ29tbWVudDM4NjY5MjUzNA== | simonw 9599 | 2018-05-04T18:26:30Z | 2018-05-04T18:26:30Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_size=max argument 320090329 | ||
386692333 | https://github.com/simonw/datasette/issues/248#issuecomment-386692333 | https://api.github.com/repos/simonw/datasette/issues/248 | MDEyOklzc3VlQ29tbWVudDM4NjY5MjMzMw== | simonw 9599 | 2018-05-04T18:25:40Z | 2018-05-04T18:25:40Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
/-/plugins should show version of each installed plugin 319954545 | ||
386357645 | https://github.com/simonw/datasette/issues/248#issuecomment-386357645 | https://api.github.com/repos/simonw/datasette/issues/248 | MDEyOklzc3VlQ29tbWVudDM4NjM1NzY0NQ== | simonw 9599 | 2018-05-03T16:36:59Z | 2018-05-03T16:36:59Z | OWNER | Even better: use |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
/-/plugins should show version of each installed plugin 319954545 | |
386310149 | https://github.com/simonw/datasette/issues/245#issuecomment-386310149 | https://api.github.com/repos/simonw/datasette/issues/245 | MDEyOklzc3VlQ29tbWVudDM4NjMxMDE0OQ== | simonw 9599 | 2018-05-03T14:14:33Z | 2018-05-03T14:14:33Z | OWNER | Demos:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_shape=array option 319358200 | |
386309928 | https://github.com/simonw/datasette/issues/244#issuecomment-386309928 | https://api.github.com/repos/simonw/datasette/issues/244 | MDEyOklzc3VlQ29tbWVudDM4NjMwOTkyOA== | simonw 9599 | 2018-05-03T14:13:49Z | 2018-05-03T14:13:49Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
/-/versions page 318738000 | ||
384678319 | https://github.com/simonw/datasette/issues/125#issuecomment-384678319 | https://api.github.com/repos/simonw/datasette/issues/125 | MDEyOklzc3VlQ29tbWVudDM4NDY3ODMxOQ== | simonw 9599 | 2018-04-26T15:14:31Z | 2018-04-26T15:14:31Z | OWNER | I shipped this last week as the first plugin: https://simonwillison.net/2018/Apr/20/datasette-plugins/ |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Plot rows on a map with Leaflet and Leaflet.markercluster 275135393 | |
384676488 | https://github.com/simonw/datasette/issues/44#issuecomment-384676488 | https://api.github.com/repos/simonw/datasette/issues/44 | MDEyOklzc3VlQ29tbWVudDM4NDY3NjQ4OA== | simonw 9599 | 2018-04-26T15:09:57Z | 2018-04-26T15:09:57Z | OWNER | Remaining work for this is tracked in #150 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_group_count=country - return counts by specific column(s) 269731374 | |
384675792 | https://github.com/simonw/datasette/issues/79#issuecomment-384675792 | https://api.github.com/repos/simonw/datasette/issues/79 | MDEyOklzc3VlQ29tbWVudDM4NDY3NTc5Mg== | simonw 9599 | 2018-04-26T15:08:13Z | 2018-04-26T15:08:13Z | OWNER | Docs now live at http://datasette.readthedocs.io/ I still need to document a few more parts of the API before closing this. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add more detailed API documentation to the README 273569068 | |
384512192 | https://github.com/simonw/datasette/issues/229#issuecomment-384512192 | https://api.github.com/repos/simonw/datasette/issues/229 | MDEyOklzc3VlQ29tbWVudDM4NDUxMjE5Mg== | simonw 9599 | 2018-04-26T04:49:46Z | 2018-04-26T04:49:46Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Table view should support ?_size=400 parameter 316123256 | ||
384503873 | https://github.com/simonw/datasette/issues/239#issuecomment-384503873 | https://api.github.com/repos/simonw/datasette/issues/239 | MDEyOklzc3VlQ29tbWVudDM4NDUwMzg3Mw== | simonw 9599 | 2018-04-26T03:45:11Z | 2018-04-26T03:45:11Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support for hidden tables in metadata.json 317760361 | ||
384500327 | https://github.com/simonw/datasette/issues/239#issuecomment-384500327 | https://api.github.com/repos/simonw/datasette/issues/239 | MDEyOklzc3VlQ29tbWVudDM4NDUwMDMyNw== | simonw 9599 | 2018-04-26T03:18:12Z | 2018-04-26T03:18:20Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support for hidden tables in metadata.json 317760361 | |
384362028 | https://github.com/simonw/datasette/issues/238#issuecomment-384362028 | https://api.github.com/repos/simonw/datasette/issues/238 | MDEyOklzc3VlQ29tbWVudDM4NDM2MjAyOA== | simonw 9599 | 2018-04-25T17:07:11Z | 2018-04-25T17:07:11Z | OWNER | On further thought: this is actually only an issue for immutable deployments to platforms like Zeit Now and Heroku. As such, adding it to |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
External metadata.json 317714268 | |
383764533 | https://github.com/simonw/datasette/issues/235#issuecomment-383764533 | https://api.github.com/repos/simonw/datasette/issues/235 | MDEyOklzc3VlQ29tbWVudDM4Mzc2NDUzMw== | simonw 9599 | 2018-04-24T00:30:02Z | 2018-04-24T00:30:02Z | OWNER | The |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add limit on the size in KB of data returned from a single query 316621102 | |
383727973 | https://github.com/simonw/datasette/issues/235#issuecomment-383727973 | https://api.github.com/repos/simonw/datasette/issues/235 | MDEyOklzc3VlQ29tbWVudDM4MzcyNzk3Mw== | simonw 9599 | 2018-04-23T21:23:59Z | 2018-04-23T21:23:59Z | OWNER | There might also be something clever we can do here with PRAGMA statements: https://stackoverflow.com/questions/14146881/limit-the-maximum-amount-of-memory-sqlite3-uses |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add limit on the size in KB of data returned from a single query 316621102 | |
383315348 | https://github.com/simonw/datasette/issues/231#issuecomment-383315348 | https://api.github.com/repos/simonw/datasette/issues/231 | MDEyOklzc3VlQ29tbWVudDM4MzMxNTM0OA== | simonw 9599 | 2018-04-21T17:37:50Z | 2018-04-22T23:06:04Z | OWNER | I could also have an Would be useful if the plugin didn't append its JavaScript in pages that it wasn't used for - that might require making the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
metadata.json support for plugin configuration options 316323336 | |
383410146 | https://github.com/simonw/datasette/issues/234#issuecomment-383410146 | https://api.github.com/repos/simonw/datasette/issues/234 | MDEyOklzc3VlQ29tbWVudDM4MzQxMDE0Ng== | simonw 9599 | 2018-04-22T20:32:30Z | 2018-04-22T20:47:02Z | OWNER | I built this wrong: my implementation is looking for the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
label_column option in metadata.json 316526433 | |
383399762 | https://github.com/simonw/datasette/issues/234#issuecomment-383399762 | https://api.github.com/repos/simonw/datasette/issues/234 | MDEyOklzc3VlQ29tbWVudDM4MzM5OTc2Mg== | simonw 9599 | 2018-04-22T17:54:39Z | 2018-04-22T17:54:39Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
label_column option in metadata.json 316526433 | ||
383398182 | https://github.com/simonw/datasette/issues/234#issuecomment-383398182 | https://api.github.com/repos/simonw/datasette/issues/234 | MDEyOklzc3VlQ29tbWVudDM4MzM5ODE4Mg== | simonw 9599 | 2018-04-22T17:31:12Z | 2018-04-22T17:31:12Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
label_column option in metadata.json 316526433 | |
383252624 | https://github.com/simonw/datasette/pull/232#issuecomment-383252624 | https://api.github.com/repos/simonw/datasette/issues/232 | MDEyOklzc3VlQ29tbWVudDM4MzI1MjYyNA== | simonw 9599 | 2018-04-21T00:19:00Z | 2018-04-21T00:19:00Z | OWNER | Thanks! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Fix a typo 316365426 | |
383140111 | https://github.com/simonw/datasette/issues/14#issuecomment-383140111 | https://api.github.com/repos/simonw/datasette/issues/14 | MDEyOklzc3VlQ29tbWVudDM4MzE0MDExMQ== | simonw 9599 | 2018-04-20T15:52:33Z | 2018-04-20T15:52:33Z | OWNER | Here's a link demonstrating my new plugin: https://datasette-cluster-map-demo.now.sh/polar-bears-455fe3a/USGS_WC_eartags_output_files_2009-2011-Status |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Datasette Plugins 267707940 | |
383139889 | https://github.com/simonw/datasette/issues/14#issuecomment-383139889 | https://api.github.com/repos/simonw/datasette/issues/14 | MDEyOklzc3VlQ29tbWVudDM4MzEzOTg4OQ== | simonw 9599 | 2018-04-20T15:51:47Z | 2018-04-20T15:51:47Z | OWNER | I released everything we have so far in Datasette 0.20 and built and released an example plugin, datasette-cluster-map. Here's my blog entry about it: https://simonwillison.net/2018/Apr/20/datasette-plugins/ |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Datasette Plugins 267707940 | |
383109984 | https://github.com/simonw/datasette/issues/230#issuecomment-383109984 | https://api.github.com/repos/simonw/datasette/issues/230 | MDEyOklzc3VlQ29tbWVudDM4MzEwOTk4NA== | simonw 9599 | 2018-04-20T14:15:39Z | 2018-04-20T14:15:39Z | OWNER | Refs #229 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Setting page size AND max returned rows to 1000 doesn't seem to work 316128955 | |
382967238 | https://github.com/simonw/datasette/issues/227#issuecomment-382967238 | https://api.github.com/repos/simonw/datasette/issues/227 | MDEyOklzc3VlQ29tbWVudDM4Mjk2NzIzOA== | simonw 9599 | 2018-04-20T03:58:09Z | 2018-04-20T03:58:09Z | OWNER | Maybe prepare_table_data() vs prepare_table_context() |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
prepare_context() plugin hook 315960272 | |
382966604 | https://github.com/simonw/datasette/issues/227#issuecomment-382966604 | https://api.github.com/repos/simonw/datasette/issues/227 | MDEyOklzc3VlQ29tbWVudDM4Mjk2NjYwNA== | simonw 9599 | 2018-04-20T03:54:56Z | 2018-04-20T03:54:56Z | OWNER | Should this differentiate between preparing the data to be sent back as JSON and preparing the context for the template? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
prepare_context() plugin hook 315960272 | |
382964794 | https://github.com/simonw/datasette/issues/227#issuecomment-382964794 | https://api.github.com/repos/simonw/datasette/issues/227 | MDEyOklzc3VlQ29tbWVudDM4Mjk2NDc5NA== | simonw 9599 | 2018-04-20T03:45:18Z | 2018-04-20T03:45:18Z | OWNER | What if the context needs to make await calls? One possible option: plugins can either manipulate the context in place OR they can return an awaitable. If they do that, the caller will await it. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
prepare_context() plugin hook 315960272 | |
382959857 | https://github.com/simonw/datasette/issues/227#issuecomment-382959857 | https://api.github.com/repos/simonw/datasette/issues/227 | MDEyOklzc3VlQ29tbWVudDM4Mjk1OTg1Nw== | simonw 9599 | 2018-04-20T03:21:43Z | 2018-04-20T03:21:43Z | OWNER | Plus a generic prepare_context() hook called in the common render method. prepare_context_table(), prepare_context_row() etc Arguments are context, request, self (hence can access self.ds) |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
prepare_context() plugin hook 315960272 | |
382958693 | https://github.com/simonw/datasette/issues/227#issuecomment-382958693 | https://api.github.com/repos/simonw/datasette/issues/227 | MDEyOklzc3VlQ29tbWVudDM4Mjk1ODY5Mw== | simonw 9599 | 2018-04-20T03:15:52Z | 2018-04-20T03:15:52Z | OWNER | A better way to do this would be with many different plugin hooks, one for each view. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
prepare_context() plugin hook 315960272 | |
382924910 | https://github.com/simonw/datasette/issues/228#issuecomment-382924910 | https://api.github.com/repos/simonw/datasette/issues/228 | MDEyOklzc3VlQ29tbWVudDM4MjkyNDkxMA== | simonw 9599 | 2018-04-20T00:35:48Z | 2018-04-20T00:35:48Z | OWNER | Hiding tables with the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
If spatialite detected, mark idx_XXX_Geometry tables as hidden 316031566 | |
382808266 | https://github.com/simonw/datasette/issues/227#issuecomment-382808266 | https://api.github.com/repos/simonw/datasette/issues/227 | MDEyOklzc3VlQ29tbWVudDM4MjgwODI2Ng== | simonw 9599 | 2018-04-19T16:59:23Z | 2018-04-19T16:59:23Z | OWNER | Maybe this should have a second argument indicating which codepath was being handled. That way plugins could say "only inject this extra context variable on the row page". |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
prepare_context() plugin hook 315960272 | |
382616527 | https://github.com/simonw/datasette/issues/224#issuecomment-382616527 | https://api.github.com/repos/simonw/datasette/issues/224 | MDEyOklzc3VlQ29tbWVudDM4MjYxNjUyNw== | simonw 9599 | 2018-04-19T05:40:28Z | 2018-04-19T05:40:28Z | OWNER | No need to use |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability for plugins to bundle templates 315517578 | |
382413121 | https://github.com/simonw/datasette/issues/223#issuecomment-382413121 | https://api.github.com/repos/simonw/datasette/issues/223 | MDEyOklzc3VlQ29tbWVudDM4MjQxMzEyMQ== | simonw 9599 | 2018-04-18T14:47:18Z | 2018-04-18T14:47:18Z | OWNER | And tested
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette publish --install=name-of-plugin 315327860 | |
382409989 | https://github.com/simonw/datasette/issues/223#issuecomment-382409989 | https://api.github.com/repos/simonw/datasette/issues/223 | MDEyOklzc3VlQ29tbWVudDM4MjQwOTk4OQ== | simonw 9599 | 2018-04-18T14:38:08Z | 2018-04-18T14:38:08Z | OWNER | Tested on Heroku as well.
https://morning-tor-45944.herokuapp.com/-/static-plugins/datasette_plugin_demos/plugin.js https://morning-tor-45944.herokuapp.com/sortable-4bbaa6f?sql=select+random_integer%280%2C+10%29 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette publish --install=name-of-plugin 315327860 | |
382408128 | https://github.com/simonw/datasette/issues/223#issuecomment-382408128 | https://api.github.com/repos/simonw/datasette/issues/223 | MDEyOklzc3VlQ29tbWVudDM4MjQwODEyOA== | simonw 9599 | 2018-04-18T14:33:09Z | 2018-04-18T14:33:09Z | OWNER | Demo:
Produced this deployment, with both the https://datasette-issue-223.now.sh/-/static-plugins/datasette_plugin_demos/plugin.js https://datasette-issue-223.now.sh/sortable-4bbaa6f?sql=select+random_integer%280%2C+10%29 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette publish --install=name-of-plugin 315327860 | |
382256729 | https://github.com/simonw/datasette/issues/14#issuecomment-382256729 | https://api.github.com/repos/simonw/datasette/issues/14 | MDEyOklzc3VlQ29tbWVudDM4MjI1NjcyOQ== | simonw 9599 | 2018-04-18T04:29:29Z | 2018-04-18T04:30:14Z | OWNER | I added a mechanism for plugins to serve static files and define custom CSS and JS URLs in #214 - see new documentation on http://datasette.readthedocs.io/en/latest/plugins.html#static-assets and http://datasette.readthedocs.io/en/latest/plugins.html#extra-css-urls |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Datasette Plugins 267707940 |
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