github
html_url | issue_url | id | node_id | user | created_at | updated_at | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
https://github.com/simonw/datasette/issues/73#issuecomment-343801392 | https://api.github.com/repos/simonw/datasette/issues/73 | 343801392 | MDEyOklzc3VlQ29tbWVudDM0MzgwMTM5Mg== | 9599 | 2017-11-13T03:36:47Z | 2017-11-13T03:36:47Z | OWNER | While I’m at it, let’s allow people to opt out of HTTP/2 push with a ?_nopush=1 argument too - in case they decide they don’t want to receive large 302 responses. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273296178 | |
https://github.com/simonw/datasette/issues/73#issuecomment-392574415 | https://api.github.com/repos/simonw/datasette/issues/73 | 392574415 | MDEyOklzc3VlQ29tbWVudDM5MjU3NDQxNQ== | 9599 | 2018-05-28T17:25:14Z | 2018-05-28T17:25:14Z | OWNER | I implemented this as `?_ttl=0` in #289 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273296178 | |
https://github.com/simonw/datasette/issues/74#issuecomment-344018680 | https://api.github.com/repos/simonw/datasette/issues/74 | 344018680 | MDEyOklzc3VlQ29tbWVudDM0NDAxODY4MA== | 9599 | 2017-11-13T18:49:58Z | 2017-11-13T18:49:58Z | OWNER | Turns out it does this already: https://github.com/simonw/datasette/blob/6b3b05b6db0d2a7b7cec8b8dbb4ddc5e12a376b2/datasette/app.py#L96-L107 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273296684 | |
https://github.com/simonw/datasette/issues/75#issuecomment-344000982 | https://api.github.com/repos/simonw/datasette/issues/75 | 344000982 | MDEyOklzc3VlQ29tbWVudDM0NDAwMDk4Mg== | 9599 | 2017-11-13T17:50:27Z | 2017-11-13T17:50:27Z | OWNER | This is necessary because one of the fun things to do with this tool is run it locally, e.g.: datasette ~/Library/Application\ Support/Google/Chrome/Default/History -p 8003 BUT... if we enable CORS by default, an evil site could try sniffing for localhost:8003 and attempt to steal data. So we'll enable the CORS headers only if `--cors` is provided to the command, and then use that command in the default Dockerfile. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273509159 | |
https://github.com/simonw/datasette/issues/79#issuecomment-344141515 | https://api.github.com/repos/simonw/datasette/issues/79 | 344141515 | MDEyOklzc3VlQ29tbWVudDM0NDE0MTUxNQ== | 9599 | 2017-11-14T04:16:01Z | 2017-11-14T04:16:01Z | OWNER | This is probably a bit too much for the README - I should get readthedocs working. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273569068 | |
https://github.com/simonw/datasette/issues/79#issuecomment-384675792 | https://api.github.com/repos/simonw/datasette/issues/79 | 384675792 | MDEyOklzc3VlQ29tbWVudDM4NDY3NTc5Mg== | 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 } |
273569068 | |
https://github.com/simonw/datasette/issues/79#issuecomment-392574358 | https://api.github.com/repos/simonw/datasette/issues/79 | 392574358 | MDEyOklzc3VlQ29tbWVudDM5MjU3NDM1OA== | 9599 | 2018-05-28T17:24:48Z | 2018-05-28T17:24:48Z | OWNER | Closing this as obsolete in favor of other issues [tagged documentation](https://github.com/simonw/datasette/labels/documentation). | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273569068 | |
https://github.com/simonw/datasette/issues/80#issuecomment-344074443 | https://api.github.com/repos/simonw/datasette/issues/80 | 344074443 | MDEyOklzc3VlQ29tbWVudDM0NDA3NDQ0Mw== | 9599 | 2017-11-13T22:04:54Z | 2017-11-13T22:05:02Z | OWNER | The fivethirtyeight dataset: datasette publish now --name fivethirtyeight --metadata metadata.json fivethirtyeight.db now alias https://fivethirtyeight-jyqfudvjli.now.sh fivethirtyeight.datasettes.com And parlgov: datasette publish now parlgov.db --name=parlgov --metadata=parlgov.json now alias https://parlgov-hqvxuhmbyh.now.sh parlgov.datasettes.com | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273569477 | |
https://github.com/simonw/datasette/issues/80#issuecomment-344075696 | https://api.github.com/repos/simonw/datasette/issues/80 | 344075696 | MDEyOklzc3VlQ29tbWVudDM0NDA3NTY5Ng== | 9599 | 2017-11-13T22:09:46Z | 2017-11-13T22:09:46Z | OWNER | Parlgov was throwing errors on one of the views, which takes longer than 1000ms to execute - so I added the ability to customize the time limit in https://github.com/simonw/datasette/commit/1e698787a4dd6df0432021a6814c446c8b69bba2 datasette publish now parlgov.db --metadata parlgov.json --name parlgov --extra-options="--sql_time_limit_ms=3500" now alias https://parlgov-nvkcowlixq.now.sh parlgov.datasettes.com https://parlgov.datasettes.com/parlgov-25f9855/view_cabinet now returns in just over 2.5s | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273569477 | |
https://github.com/simonw/datasette/pull/81#issuecomment-344076554 | https://api.github.com/repos/simonw/datasette/issues/81 | 344076554 | MDEyOklzc3VlQ29tbWVudDM0NDA3NjU1NA== | 9599 | 2017-11-13T22:12:57Z | 2017-11-13T22:12:57Z | OWNER | Hah, I haven't even announced this yet :) Travis is upset because I'm using SQL in the tests which isn't compatible with their version of Python 3. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273595473 | |
https://github.com/simonw/datasette/pull/81#issuecomment-344125441 | https://api.github.com/repos/simonw/datasette/issues/81 | 344125441 | MDEyOklzc3VlQ29tbWVudDM0NDEyNTQ0MQ== | 50527 | 2017-11-14T02:24:54Z | 2017-11-14T02:24:54Z | CONTRIBUTOR | Oops, if I jumped the gun. I saw the project in my github activity feed and saw some low hanging fruit :) | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273595473 | |
https://github.com/simonw/datasette/issues/82#issuecomment-344118849 | https://api.github.com/repos/simonw/datasette/issues/82 | 344118849 | MDEyOklzc3VlQ29tbWVudDM0NDExODg0OQ== | 9599 | 2017-11-14T01:46:10Z | 2017-11-14T01:46:10Z | OWNER | Did this: https://simonwillison.net/2017/Nov/13/datasette/ | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273596159 | |
https://github.com/simonw/datasette/issues/85#issuecomment-344452063 | https://api.github.com/repos/simonw/datasette/issues/85 | 344452063 | MDEyOklzc3VlQ29tbWVudDM0NDQ1MjA2Mw== | 9599 | 2017-11-15T01:03:03Z | 2017-11-15T01:03:03Z | OWNER | This can work in reverse too. If you view the row page for something that has foreign keys against it, we can show you “53 items in TABLE link to this” and provide a link to view them all. That count worry could be prohibitively expensive. To counter that, we could run the count query via Ajax and set a strict time limit on it. See #95 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273678673 | |
https://github.com/simonw/datasette/issues/85#issuecomment-344452326 | https://api.github.com/repos/simonw/datasette/issues/85 | 344452326 | MDEyOklzc3VlQ29tbWVudDM0NDQ1MjMyNg== | 9599 | 2017-11-15T01:04:38Z | 2017-11-15T01:04:38Z | OWNER | This will work well in conjunction with https://github.com/simonw/csvs-to-sqlite/issues/2 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273678673 | |
https://github.com/simonw/datasette/issues/85#issuecomment-344657040 | https://api.github.com/repos/simonw/datasette/issues/85 | 344657040 | MDEyOklzc3VlQ29tbWVudDM0NDY1NzA0MA== | 9599 | 2017-11-15T16:56:48Z | 2017-11-15T16:56:48Z | OWNER | Since detecting foreign keys that point to a specific table is a bit expensive (you have to call a PRAGMA on every other table) I’m going to add this to the build/inspect stage. Idea: if we detect that the foreign key table only has one other column in it (id, name) AND we know that the id is the primary key, we can add an efficient lookup on the table list view and prefetch a dictionary mapping IDs to their value. Then we can feed that dictionary in as extra tenplate context and use it to render labeled hyperlinks in the corresponding column. This means our build step should also cache which columns are indexed, and add a “label_column” property for tables with an obvious lane column. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273678673 | |
https://github.com/simonw/datasette/issues/85#issuecomment-345150048 | https://api.github.com/repos/simonw/datasette/issues/85 | 345150048 | MDEyOklzc3VlQ29tbWVudDM0NTE1MDA0OA== | 9599 | 2017-11-17T05:35:25Z | 2017-11-17T05:35:25Z | OWNER | `csvs-to-sqlite` is now capable of generating databases with foreign key lookup tables: https://github.com/simonw/csvs-to-sqlite/releases/tag/0.3 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273678673 | |
https://github.com/simonw/datasette/issues/85#issuecomment-345242447 | https://api.github.com/repos/simonw/datasette/issues/85 | 345242447 | MDEyOklzc3VlQ29tbWVudDM0NTI0MjQ0Nw== | 9599 | 2017-11-17T13:22:33Z | 2017-11-17T13:23:14Z | OWNER | I could support explicit label columns using additional arguments to `datasette serve`: datasette serve mydb.py --label-column mydb:table1:name --label-column mydb:table2:title This would mean "in mydb, set the label column for table1 to name, and the label column for table2 to title" | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273678673 | |
https://github.com/simonw/datasette/issues/85#issuecomment-345494724 | https://api.github.com/repos/simonw/datasette/issues/85 | 345494724 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NDcyNA== | 9599 | 2017-11-19T06:08:19Z | 2017-11-19T06:08:19Z | OWNER | This is working really nicely now: <img width="1082" alt="sf-trees__street_tree_list" src="https://user-images.githubusercontent.com/9599/32987909-ef2c6008-ccac-11e7-81ce-4451f5372ab9.png"> <img width="461" alt="sf-trees__qspecies" src="https://user-images.githubusercontent.com/9599/32987911-fa5ce538-ccac-11e7-83b9-2e97dea82d86.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273678673 | |
https://github.com/simonw/datasette/issues/86#issuecomment-345494775 | https://api.github.com/repos/simonw/datasette/issues/86 | 345494775 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NDc3NQ== | 9599 | 2017-11-19T06:09:43Z | 2017-11-19T06:09:43Z | OWNER | Now that we have foreign key support (#85) this is even more important, since foreign key support actively encourages linking to filtered table views. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273703829 | |
https://github.com/simonw/datasette/issues/86#issuecomment-345494918 | https://api.github.com/repos/simonw/datasette/issues/86 | 345494918 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NDkxOA== | 9599 | 2017-11-19T06:14:17Z | 2017-11-19T06:14:17Z | OWNER | If the selected relationship is a foreign key reference, we should resolve that foreign key and display it on the page. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273703829 | |
https://github.com/simonw/datasette/issues/86#issuecomment-345496540 | https://api.github.com/repos/simonw/datasette/issues/86 | 345496540 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NjU0MA== | 9599 | 2017-11-19T06:59:40Z | 2017-11-19T06:59:40Z | OWNER | OK,I've figured out how to do an initial version of this without JavaScript. I'll provide three form fields labell d "add filter": * a select box of all of the columns * a select box of the available operations * a value box Submit those and the site will redirect you to a correctly populated querystring for that filter. If you have filters applied, those will display as prepopulated form field triples. For foreign key reference filters, I will display the resolved value next to the text box containing the numeric ID. In the future this can get a select2 style treatment. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273703829 | |
https://github.com/simonw/datasette/issues/86#issuecomment-345497453 | https://api.github.com/repos/simonw/datasette/issues/86 | 345497453 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NzQ1Mw== | 9599 | 2017-11-19T07:21:22Z | 2017-11-19T07:21:22Z | OWNER | I'm going to be a bit classier about this and auto generate a title for the page that describes the currently applied filters. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273703829 | |
https://github.com/simonw/datasette/issues/86#issuecomment-345497534 | https://api.github.com/repos/simonw/datasette/issues/86 | 345497534 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NzUzNA== | 9599 | 2017-11-19T07:23:33Z | 2017-11-19T07:23:33Z | OWNER | "Tablename: 3,567 rows where status = 3 (published) and n > 55" | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273703829 | |
https://github.com/simonw/datasette/issues/86#issuecomment-345497689 | https://api.github.com/repos/simonw/datasette/issues/86 | 345497689 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NzY4OQ== | 9599 | 2017-11-19T07:27:40Z | 2017-11-19T07:27:40Z | OWNER | I'll have to refactor the foreign key annotating code to be usable in other contexts - at the moment it only works for annotating displays of rows, but I need to use it to resolve selected filters as well. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273703829 | |
https://github.com/simonw/datasette/issues/86#issuecomment-345559864 | https://api.github.com/repos/simonw/datasette/issues/86 | 345559864 | MDEyOklzc3VlQ29tbWVudDM0NTU1OTg2NA== | 9599 | 2017-11-19T23:35:48Z | 2017-11-19T23:35:48Z | OWNER | I need a nicer abstraction around the concept of filters. It needs to be able to: - convert querystring parameters into filters - convert filters into a querystring - iterate through currently applied filters - convert selected filters into a human description (e.g. for a title) - expand filters that involve a foreign key - add filters - remove filters - define different types of filters It should replace my current `build_where_clauses` implementation, in particular this bit: https://github.com/simonw/datasette/blob/a5881e105a02830d26f07e98177248d5910893da/datasette/utils.py#L38-L56 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273703829 | |
https://github.com/simonw/datasette/issues/86#issuecomment-346530498 | https://api.github.com/repos/simonw/datasette/issues/86 | 346530498 | MDEyOklzc3VlQ29tbWVudDM0NjUzMDQ5OA== | 9599 | 2017-11-23T04:35:07Z | 2017-11-23T04:35:07Z | OWNER | Here's where I am now. Needs a bit of UI tidy up and it will be good to release: <img width="1126" alt="conventional_power_plants_eu__conventional_power_plants_eu" src="https://user-images.githubusercontent.com/9599/33159075-9e985bb8-cfc4-11e7-888d-6828ebdeb1ca.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273703829 | |
https://github.com/simonw/datasette/issues/86#issuecomment-346691243 | https://api.github.com/repos/simonw/datasette/issues/86 | 346691243 | MDEyOklzc3VlQ29tbWVudDM0NjY5MTI0Mw== | 9599 | 2017-11-23T20:07:15Z | 2017-11-23T20:07:15Z | OWNER | <img width="566" alt="fivethirtyeight__bob-ross_elements-by-episode_csv" src="https://user-images.githubusercontent.com/9599/33187492-d6fb6068-d046-11e7-80fc-470c04a46386.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273703829 | |
https://github.com/simonw/datasette/issues/86#issuecomment-346694211 | https://api.github.com/repos/simonw/datasette/issues/86 | 346694211 | MDEyOklzc3VlQ29tbWVudDM0NjY5NDIxMQ== | 9599 | 2017-11-23T20:34:32Z | 2017-11-23T20:34:32Z | OWNER | And with ef3eacf622e69723d48ab1ad597645770a7361db I'm ready to call this one done. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273703829 | |
https://github.com/simonw/datasette/issues/87#issuecomment-403909671 | https://api.github.com/repos/simonw/datasette/issues/87 | 403909671 | MDEyOklzc3VlQ29tbWVudDQwMzkwOTY3MQ== | 9599 | 2018-07-10T17:49:12Z | 2018-07-10T17:49:12Z | OWNER | This was fixed by https://github.com/simonw/datasette/commit/6a32684ebba89dfe882e1147b23aa8778479f5d8#diff-354f30a63fb0907d4ad57269548329e3 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273709194 | |
https://github.com/simonw/datasette/issues/88#issuecomment-344427448 | https://api.github.com/repos/simonw/datasette/issues/88 | 344427448 | MDEyOklzc3VlQ29tbWVudDM0NDQyNzQ0OA== | 9599 | 2017-11-14T22:54:06Z | 2017-11-14T22:54:06Z | OWNER | Hooray! First dataset that wasn't deployed by me :) https://github.com/simonw/datasette/wiki/Datasettes | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273775212 | |
https://github.com/simonw/datasette/issues/88#issuecomment-344427560 | https://api.github.com/repos/simonw/datasette/issues/88 | 344427560 | MDEyOklzc3VlQ29tbWVudDM0NDQyNzU2MA== | 9599 | 2017-11-14T22:54:33Z | 2017-11-14T22:54:33Z | OWNER | I'm getting an internal server error on http://run.plnkr.co/preview/cj9zlf1qc0003414y90ajkwpk/ at the moment | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273775212 | |
https://github.com/simonw/datasette/issues/88#issuecomment-344430689 | https://api.github.com/repos/simonw/datasette/issues/88 | 344430689 | MDEyOklzc3VlQ29tbWVudDM0NDQzMDY4OQ== | 15543 | 2017-11-14T23:08:22Z | 2017-11-14T23:08:22Z | CONTRIBUTOR | > I'm getting an internal server error on http://run.plnkr.co/preview/cj9zlf1qc0003414y90ajkwpk/ at the moment Sorry about that - here's a working version on Netlify: https://nhs-england-map.netlify.com | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273775212 | |
https://github.com/simonw/datasette/issues/88#issuecomment-804471733 | https://api.github.com/repos/simonw/datasette/issues/88 | 804471733 | MDEyOklzc3VlQ29tbWVudDgwNDQ3MTczMw== | 192568 | 2021-03-22T23:46:36Z | 2021-03-22T23:46:36Z | CONTRIBUTOR | Google Map API limits seem to prevent https://nhs-england-map.netlify.com from being a working demo. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273775212 | |
https://github.com/simonw/datasette/pull/89#issuecomment-344462277 | https://api.github.com/repos/simonw/datasette/issues/89 | 344462277 | MDEyOklzc3VlQ29tbWVudDM0NDQ2MjI3Nw== | 9599 | 2017-11-15T02:02:52Z | 2017-11-15T02:02:52Z | OWNER | This is exactly what I was after, thanks! | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273816720 | |
https://github.com/simonw/datasette/issues/90#issuecomment-344667202 | https://api.github.com/repos/simonw/datasette/issues/90 | 344667202 | MDEyOklzc3VlQ29tbWVudDM0NDY2NzIwMg== | 9599 | 2017-11-15T17:29:38Z | 2017-11-15T17:29:38Z | OWNER | @jacobian points out that a buildpack may be a better fit than a Docker container for implementing this: https://twitter.com/jacobian/status/930849058465255424 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273846123 | |
https://github.com/simonw/datasette/issues/90#issuecomment-344680385 | https://api.github.com/repos/simonw/datasette/issues/90 | 344680385 | MDEyOklzc3VlQ29tbWVudDM0NDY4MDM4NQ== | 9599 | 2017-11-15T18:14:11Z | 2017-11-15T18:14:11Z | OWNER | Maybe we don’t even need a buildpack... we could create a temporary directory, set up a classic heroku app with the datasette serve command in the Procfile and then git push to deploy. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273846123 | |
https://github.com/simonw/datasette/issues/90#issuecomment-344686483 | https://api.github.com/repos/simonw/datasette/issues/90 | 344686483 | MDEyOklzc3VlQ29tbWVudDM0NDY4NjQ4Mw== | 9599 | 2017-11-15T18:36:23Z | 2017-11-15T18:36:23Z | OWNER | The “datasette build” command would need to run in a bin/post_compile script eg https://github.com/simonw/simonwillisonblog/blob/cloudflare-ips/bin/post_compile | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273846123 | |
https://github.com/simonw/datasette/issues/90#issuecomment-344687328 | https://api.github.com/repos/simonw/datasette/issues/90 | 344687328 | MDEyOklzc3VlQ29tbWVudDM0NDY4NzMyOA== | 9599 | 2017-11-15T18:39:14Z | 2017-11-15T18:39:49Z | OWNER | By default the command could use a temporary directory that gets cleaned up after the deploy, but we could allow users to opt in to keeping the generated directory like so: datasette publish heroku mydb.py -d ~/dev/my-heroku-app This would create the my-heroku-app folder so you can later execute further git deploys from there. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273846123 | |
https://github.com/simonw/datasette/issues/90#issuecomment-346161985 | https://api.github.com/repos/simonw/datasette/issues/90 | 346161985 | MDEyOklzc3VlQ29tbWVudDM0NjE2MTk4NQ== | 9599 | 2017-11-21T21:10:22Z | 2017-11-21T21:10:22Z | OWNER | Woohoo! I've found one tiny issue: right now, the following doesn't work: datasette publish heroku ../demo-databses/google-trends.db It results in this error in the Heroku logs: 2017-11-21T21:03:29.210511+00:00 app[web.1]: Usage: datasette serve [OPTIONS] [FILES]... 2017-11-21T21:03:29.210524+00:00 app[web.1]: 2017-11-21T21:03:29.210555+00:00 app[web.1]: Error: Invalid value for "files": Path "../demo-databses/google-trends.db" does not exist. The command works fine if you run it in the same directory as the database file you are publishing. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273846123 | |
https://github.com/simonw/datasette/issues/90#issuecomment-346163513 | https://api.github.com/repos/simonw/datasette/issues/90 | 346163513 | MDEyOklzc3VlQ29tbWVudDM0NjE2MzUxMw== | 9599 | 2017-11-21T21:16:16Z | 2017-11-21T21:16:16Z | OWNER | The reason relative paths work for `publish now` is that the `make_dockerfile()` function is called by passing the file names, not the full file paths: https://github.com/simonw/datasette/blob/e47117ce1d15f11246a3120aa49de70205713d05/datasette/utils.py#L166 Clearly the correct thing to do here is for us to refactor the shared code between heroku/package/now. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273846123 | |
https://github.com/simonw/datasette/issues/90#issuecomment-350521711 | https://api.github.com/repos/simonw/datasette/issues/90 | 350521711 | MDEyOklzc3VlQ29tbWVudDM1MDUyMTcxMQ== | 9599 | 2017-12-10T03:05:48Z | 2017-12-10T03:05:48Z | OWNER | I fixed that last issue in c195ee4d46f2577b1943836a8270d84c8341d138 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273846123 | |
https://github.com/simonw/datasette/issues/90#issuecomment-350521736 | https://api.github.com/repos/simonw/datasette/issues/90 | 350521736 | MDEyOklzc3VlQ29tbWVudDM1MDUyMTczNg== | 9599 | 2017-12-10T03:06:34Z | 2017-12-10T03:06:34Z | OWNER | Heroku is now in the README as of 6bdfcf60760c27e29ff34692d06e62b36aeecc56 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273846123 | |
https://github.com/simonw/datasette/issues/91#issuecomment-350521780 | https://api.github.com/repos/simonw/datasette/issues/91 | 350521780 | MDEyOklzc3VlQ29tbWVudDM1MDUyMTc4MA== | 9599 | 2017-12-10T03:07:53Z | 2017-12-10T03:07:53Z | OWNER | Won't fix - I think the custom templates and static stuff in https://github.com/simonw/datasette/releases/tag/0.14 renders this obsolete. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273878873 | |
https://github.com/simonw/datasette/issues/93#issuecomment-344409906 | https://api.github.com/repos/simonw/datasette/issues/93 | 344409906 | MDEyOklzc3VlQ29tbWVudDM0NDQwOTkwNg== | 9599 | 2017-11-14T21:47:02Z | 2017-11-14T21:47:02Z | OWNER | Even without bundling in the database file itself, I'd love to have a standalone binary version of the core `datasette` CLI utility. I think Sanic may have some complex dependencies, but I've never tried pyinstaller so I don't know how easy or hard it would be to get this working. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273944952 | |
https://github.com/simonw/datasette/issues/93#issuecomment-344415756 | https://api.github.com/repos/simonw/datasette/issues/93 | 344415756 | MDEyOklzc3VlQ29tbWVudDM0NDQxNTc1Ng== | 9599 | 2017-11-14T22:09:13Z | 2017-11-14T22:09:13Z | OWNER | Looks like we'd need to use this recipe: https://github.com/pyinstaller/pyinstaller/wiki/Recipe-Setuptools-Entry-Point | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273944952 | |
https://github.com/simonw/datasette/issues/93#issuecomment-344424382 | https://api.github.com/repos/simonw/datasette/issues/93 | 344424382 | MDEyOklzc3VlQ29tbWVudDM0NDQyNDM4Mg== | 67420 | 2017-11-14T22:42:16Z | 2017-11-14T22:42:16Z | NONE | tried quickly, this seems working: ``` ~ pip3 install pyinstaller ~ pyinstaller -F --add-data /usr/local/lib/python3.6/site-packages/datasette/templates:datasette/templates --add-data /usr/local/lib/python3.6/site-packages/datasette/static:datasette/static /usr/local/bin/datasette ~ du -h dist/datasette 6.8M dist/datasette ~ file dist/datasette dist/datasette: Mach-O 64-bit executable x86_64 ``` | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273944952 | |
https://github.com/simonw/datasette/issues/93#issuecomment-344426887 | https://api.github.com/repos/simonw/datasette/issues/93 | 344426887 | MDEyOklzc3VlQ29tbWVudDM0NDQyNjg4Nw== | 9599 | 2017-11-14T22:51:46Z | 2017-11-14T22:51:46Z | OWNER | That didn't quite work for me. It built me a `dist/datasette` executable but when I try to run it I get an error: $ pwd /Users/simonw/Dropbox/Development/datasette $ source venv/bin/activate $ pyinstaller -F --add-data datasette/templates:datasette/templates --add-data datasette/static:datasette/static /Users/simonw/Dropbox/Development/datasette/venv/bin/datasette $ dist/datasette --help Traceback (most recent call last): File "datasette", line 11, in <module> File "site-packages/pkg_resources/__init__.py", line 572, in load_entry_point File "site-packages/pkg_resources/__init__.py", line 564, in get_distribution File "site-packages/pkg_resources/__init__.py", line 436, in get_provider File "site-packages/pkg_resources/__init__.py", line 984, in require File "site-packages/pkg_resources/__init__.py", line 870, in resolve pkg_resources.DistributionNotFound: The 'datasette' distribution was not found and is required by the application [99117] Failed to execute script datasette | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273944952 | |
https://github.com/simonw/datasette/issues/93#issuecomment-344430299 | https://api.github.com/repos/simonw/datasette/issues/93 | 344430299 | MDEyOklzc3VlQ29tbWVudDM0NDQzMDI5OQ== | 67420 | 2017-11-14T23:06:33Z | 2017-11-14T23:06:33Z | NONE | i will look better tomorrow, it's late i surely made some mistake https://asciinema.org/a/ZyAWbetrlriDadwWyVPUWB94H | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273944952 | |
https://github.com/simonw/datasette/issues/93#issuecomment-344440377 | https://api.github.com/repos/simonw/datasette/issues/93 | 344440377 | MDEyOklzc3VlQ29tbWVudDM0NDQ0MDM3Nw== | 9599 | 2017-11-14T23:56:35Z | 2017-11-14T23:56:35Z | OWNER | It worked! $ pyinstaller -F \ --add-data /usr/local/lib/python3.5/site-packages/datasette/templates:datasette/templates \ --add-data /usr/local/lib/python3.5/site-packages/datasette/static:datasette/static \ /usr/local/bin/datasette $ file dist/datasette dist/datasette: Mach-O 64-bit executable x86_64 $ dist/datasette --help Usage: datasette [OPTIONS] COMMAND [ARGS]... Datasette! Options: --help Show this message and exit. Commands: serve* Serve up specified SQLite database files with... build package Package specified SQLite files into a new... publish Publish specified SQLite database files to... | { "total_count": 3, "+1": 0, "-1": 0, "laugh": 0, "hooray": 3, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273944952 | |
https://github.com/simonw/datasette/issues/93#issuecomment-344440658 | https://api.github.com/repos/simonw/datasette/issues/93 | 344440658 | MDEyOklzc3VlQ29tbWVudDM0NDQ0MDY1OA== | 9599 | 2017-11-14T23:58:07Z | 2017-11-14T23:58:07Z | OWNER | It's a shame pyinstaller can't act as a cross-compiler - so I don't think I can get Travis CI to build packages. But it's fantastic that it's possible to turn the tool into a standalone executable! | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273944952 | |
https://github.com/simonw/datasette/issues/93#issuecomment-344516406 | https://api.github.com/repos/simonw/datasette/issues/93 | 344516406 | MDEyOklzc3VlQ29tbWVudDM0NDUxNjQwNg== | 67420 | 2017-11-15T08:09:41Z | 2017-11-15T08:09:41Z | NONE | actually you can use travis to build for linux/macos and [appveyor](https://www.appveyor.com/) to build for windows. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273944952 | |
https://github.com/simonw/datasette/issues/93#issuecomment-538760447 | https://api.github.com/repos/simonw/datasette/issues/93 | 538760447 | MDEyOklzc3VlQ29tbWVudDUzODc2MDQ0Nw== | 9599 | 2019-10-06T15:56:01Z | 2019-10-06T15:56:01Z | OWNER | Relevant conversation on Twitter: https://twitter.com/simonw/status/1180866651962560512?s=21 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273944952 | |
https://github.com/simonw/datasette/issues/93#issuecomment-754215392 | https://api.github.com/repos/simonw/datasette/issues/93 | 754215392 | MDEyOklzc3VlQ29tbWVudDc1NDIxNTM5Mg== | 9599 | 2021-01-04T20:59:20Z | 2021-01-04T21:03:14Z | OWNER | Updated `pyinstaller` recipe - lots of hidden imports needed now: ``` pip install wheel pip install datasette pyinstaller 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 } |
273944952 | |
https://github.com/simonw/datasette/issues/93#issuecomment-754215793 | https://api.github.com/repos/simonw/datasette/issues/93 | 754215793 | MDEyOklzc3VlQ29tbWVudDc1NDIxNTc5Mw== | 9599 | 2021-01-04T21:00:14Z | 2021-01-04T21:00:14Z | OWNER | ``` (pyinstaller-datasette) pyinstaller-datasette % file dist/datasette dist/datasette: Mach-O 64-bit executable x86_64 (pyinstaller-datasette) pyinstaller-datasette % ls -lah dist/datasette -rwxr-xr-x 1 simon wheel 8.0M Jan 4 12:58 dist/datasette ``` I'm surprised it's only 8MB! | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273944952 | |
https://github.com/simonw/datasette/issues/93#issuecomment-754218545 | https://api.github.com/repos/simonw/datasette/issues/93 | 754218545 | MDEyOklzc3VlQ29tbWVudDc1NDIxODU0NQ== | 9599 | 2021-01-04T21:05:57Z | 2021-01-04T21:05:57Z | OWNER | That BASE= trick seems to work with `zsh` but not with `bash`. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273944952 | |
https://github.com/simonw/datasette/issues/93#issuecomment-754219002 | https://api.github.com/repos/simonw/datasette/issues/93 | 754219002 | MDEyOklzc3VlQ29tbWVudDc1NDIxOTAwMg== | 9599 | 2021-01-04T21:06:49Z | 2021-01-04T21:22:27Z | OWNER | Works on Linux/Ubuntu too, except I had to do `export BASE=` on a separate line. I also did this: ``` apt-get install python3 python3-venv python3 -m venv pyinstaller-venv source pyinstaller-venv/bin/activate pip install wheel pip install datasette pyinstaller 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 } |
273944952 | |
https://github.com/simonw/datasette/issues/93#issuecomment-754227543 | https://api.github.com/repos/simonw/datasette/issues/93 | 754227543 | MDEyOklzc3VlQ29tbWVudDc1NDIyNzU0Mw== | 9599 | 2021-01-04T21:23:13Z | 2021-01-04T21:23:13Z | OWNER | ``` (pyinstaller-venv) root@dogsheep:/tmp/pyinstaller-venv# dist/datasette --get /-/databases.json [{"name": ":memory:", "path": null, "size": 0, "is_mutable": true, "is_memory": true, "hash": null}] (pyinstaller-venv) root@dogsheep:/tmp/pyinstaller-venv# ls -lah dist/datasette -rwxr-xr-x 1 root root 8.9M Jan 4 21:05 dist/datasette ``` | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273944952 | |
https://github.com/simonw/datasette/issues/93#issuecomment-754229977 | https://api.github.com/repos/simonw/datasette/issues/93 | 754229977 | MDEyOklzc3VlQ29tbWVudDc1NDIyOTk3Nw== | 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: ``` mkdir datasette-0.53-macos-binary cp dist/datasette datasette-0.53-macos-binary zip -r datasette-0.53-macos-binary.zip datasette-0.53-macos-binary ``` 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 } |
273944952 | |
https://github.com/simonw/datasette/issues/93#issuecomment-754233960 | https://api.github.com/repos/simonw/datasette/issues/93 | 754233960 | MDEyOklzc3VlQ29tbWVudDc1NDIzMzk2MA== | 9599 | 2021-01-04T21:35:37Z | 2021-01-04T21:35:37Z | OWNER | I tested it by running a `tmate` session on the GitHub macOS machines, and it worked! ``` Mac-1609795972770:tmp runner$ wget 'https://github.com/simonw/datasette/releases/download/0.53/datasette-0.53-macos-binary.zip' --2021-01-04 21:34:10-- https://github.com/simonw/datasette/releases/download/0.53/datasette-0.53-macos-binary.zip Resolving github.com (github.com)... 140.82.114.4 Connecting to github.com (github.com)|140.82.114.4|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/107914493/74658700-4e90-11eb-8f3b-ee77e6dfad90?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210104%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210104T213414Z&X-Amz-Expires=300&X-Amz-Signature=6f3c54211077092553590b33a7c36cd052895c9d4619607ad1df094782f64acf&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=107914493&response-content-disposition=attachment%3B%20filename%3Ddatasette-0.53-macos-binary.zip&response-content-type=application%2Foctet-stream [following] --2021-01-04 21:34:14-- https://github-production-release-asset-2e65be.s3.amazonaws.com/107914493/74658700-4e90-11eb-8f3b-ee77e6dfad90?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210104%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210104T213414Z&X-Amz-Expires=300&X-Amz-Signature=6f3c54211077092553590b33a7c36cd052895c9d4619607ad1df094782f64acf&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=107914493&response-content-disposition=attachment%3B%20filename%3Ddatasette-0.53-macos-binary.zip&response-content-type=application%2Foctet-stream Resolving github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 52.217.43.164 Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.217.43.164|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 8297283 (7.9M) [applicat… | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273944952 | |
https://github.com/simonw/datasette/issues/93#issuecomment-754285795 | https://api.github.com/repos/simonw/datasette/issues/93 | 754285795 | MDEyOklzc3VlQ29tbWVudDc1NDI4NTc5NQ== | 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 } |
273944952 | |
https://github.com/simonw/datasette/issues/93#issuecomment-974765825 | https://api.github.com/repos/simonw/datasette/issues/93 | 974765825 | IC_kwDOBm6k_c46Gb8B | 9599 | 2021-11-21T07:00:21Z | 2021-11-21T07:00:21Z | OWNER | Closing this in favour of Datasette Desktop: https://datasette.io/desktop | { "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273944952 | |
https://github.com/simonw/datasette/pull/94#issuecomment-344472313 | https://api.github.com/repos/simonw/datasette/issues/94 | 344472313 | MDEyOklzc3VlQ29tbWVudDM0NDQ3MjMxMw== | 9599 | 2017-11-15T03:08:00Z | 2017-11-15T03:08:00Z | OWNER | Works for me. I'm going to land this. Just one thing: simonw$ docker run --rm -t -i -p 9001:8001 c408e8cfbe40 datasette publish now The publish command requires "now" to be installed and configured Follow the instructions at https://zeit.co/now#whats-now Maybe we should have the Docker container install the "now" client? Not sure how much size that would add though. I think it's OK without for the moment. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273961179 | |
https://github.com/simonw/datasette/issues/95#issuecomment-344463436 | https://api.github.com/repos/simonw/datasette/issues/95 | 344463436 | MDEyOklzc3VlQ29tbWVudDM0NDQ2MzQzNg== | 9599 | 2017-11-15T02:10:10Z | 2017-11-15T02:10:10Z | OWNER | This means clients can ask questions but say "don't bother if it takes longer than X" - which is really handy when you're working against unknown databases that might be small or might be enormous. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273998513 | |
https://github.com/simonw/datasette/issues/96#issuecomment-344786528 | https://api.github.com/repos/simonw/datasette/issues/96 | 344786528 | MDEyOklzc3VlQ29tbWVudDM0NDc4NjUyOA== | 9599 | 2017-11-16T01:32:41Z | 2017-11-16T01:32:41Z | OWNER | <img width="733" alt="australian-dogs" src="https://user-images.githubusercontent.com/9599/32869280-f82fa176-ca2a-11e7-8ad1-ac2a13c85089.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274001453 | |
https://github.com/simonw/datasette/issues/96#issuecomment-344788435 | https://api.github.com/repos/simonw/datasette/issues/96 | 344788435 | MDEyOklzc3VlQ29tbWVudDM0NDc4ODQzNQ== | 9599 | 2017-11-16T01:43:52Z | 2017-11-16T01:43:52Z | OWNER | Demo: https://australian-dogs.now.sh/australian-dogs-3ba9628?sql=select+name%2C+count%28*%29+as+n+from+%28%0D%0A%0D%0Aselect+upper%28%22Animal+name%22%29+as+name+from+%5BAdelaide-City-Council-dog-registrations-2013%5D+where+Breed+like+%3Abreed%0D%0A%0D%0Aunion+all%0D%0A%0D%0Aselect+upper%28Animal_Name%29+as+name+from+%5BAdelaide-City-Council-dog-registrations-2014%5D+where+Breed_Description+like+%3Abreed%0D%0A%0D%0Aunion+all+%0D%0A%0D%0Aselect+upper%28Animal_Name%29+as+name+from+%5BAdelaide-City-Council-dog-registrations-2015%5D+where+Breed_Description+like+%3Abreed%0D%0A%0D%0Aunion+all%0D%0A%0D%0Aselect+upper%28%22AnimalName%22%29+as+name+from+%5BCity-of-Port-Adelaide-Enfield-Dog_Registrations_2016%5D+where+AnimalBreed+like+%3Abreed%0D%0A%0D%0Aunion+all%0D%0A%0D%0Aselect+upper%28%22Animal+Name%22%29+as+name+from+%5BMitcham-dog-registrations-2015%5D+where+Breed+like+%3Abreed%0D%0A%0D%0Aunion+all%0D%0A%0D%0Aselect+upper%28%22DOG_NAME%22%29+as+name+from+%5Bburnside-dog-registrations-2015%5D+where+DOG_BREED+like+%3Abreed%0D%0A%0D%0Aunion+all+%0D%0A%0D%0Aselect+upper%28%22Animal_Name%22%29+as+name+from+%5Bcity-of-playford-2015-dog-registration%5D+where+Breed_Description+like+%3Abreed%0D%0A%0D%0Aunion+all%0D%0A%0D%0Aselect+upper%28%22Animal+Name%22%29+as+name+from+%5Bcity-of-prospect-dog-registration-details-2016%5D+where%22Breed+Description%22+like+%3Abreed%0D%0A%0D%0A%29+group+by+name+order+by+n+desc%3B&breed=chihuahua | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274001453 | |
https://github.com/simonw/datasette/issues/96#issuecomment-344788763 | https://api.github.com/repos/simonw/datasette/issues/96 | 344788763 | MDEyOklzc3VlQ29tbWVudDM0NDc4ODc2Mw== | 9599 | 2017-11-16T01:45:51Z | 2017-11-16T01:45:51Z | OWNER | Another demo - this time it lets you search by name and see the most popular breeds with that name: https://australian-dogs.now.sh/australian-dogs-3ba9628?sql=select+breed%2C+count%28*%29+as+n+from+%28%0D%0A%0D%0Aselect+upper%28%22Breed%22%29+as+breed+from+%5BAdelaide-City-Council-dog-registrations-2013%5D+where+%22Animal+name%22+like+%3Aname%0D%0A%0D%0Aunion+all%0D%0A%0D%0Aselect+upper%28%22Breed_Description%22%29+as+breed+from+%5BAdelaide-City-Council-dog-registrations-2014%5D+where+%22Animal_Name%22+like+%3Aname%0D%0A%0D%0Aunion+all+%0D%0A%0D%0Aselect+upper%28%22Breed_Description%22%29+as+breed+from+%5BAdelaide-City-Council-dog-registrations-2015%5D+where+%22Animal_Name%22+like+%3Aname%0D%0A%0D%0Aunion+all%0D%0A%0D%0Aselect+upper%28%22AnimalBreed%22%29+as+breed+from+%5BCity-of-Port-Adelaide-Enfield-Dog_Registrations_2016%5D+where+%22AnimalName%22+like+%3Aname%0D%0A%0D%0Aunion+all%0D%0A%0D%0Aselect+upper%28%22Breed%22%29+as+breed+from+%5BMitcham-dog-registrations-2015%5D+where+%22Animal+Name%22+like+%3Aname%0D%0A%0D%0Aunion+all%0D%0A%0D%0Aselect+upper%28%22DOG_BREED%22%29+as+breed+from+%5Bburnside-dog-registrations-2015%5D+where+%22DOG_NAME%22+like+%3Aname%0D%0A%0D%0Aunion+all+%0D%0A%0D%0Aselect+upper%28%22Breed_Description%22%29+as+breed+from+%5Bcity-of-playford-2015-dog-registration%5D+where+%22Animal_Name%22+like+%3Aname%0D%0A%0D%0Aunion+all%0D%0A%0D%0Aselect+upper%28%22Breed+Description%22%29+as+breed+from+%5Bcity-of-prospect-dog-registration-details-2016%5D+where+%22Animal+Name%22+like+%3Aname%0D%0A%0D%0A%29+group+by+breed+order+by+n+desc%3B&name=rex | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274001453 | |
https://github.com/simonw/datasette/issues/97#issuecomment-345509500 | https://api.github.com/repos/simonw/datasette/issues/97 | 345509500 | MDEyOklzc3VlQ29tbWVudDM0NTUwOTUwMA== | 231923 | 2017-11-19T11:26:58Z | 2017-11-19T11:26:58Z | NONE | Specifically docs should make it clearer this file exists https://parlgov.datasettes.com/.json And from that you can build https://parlgov.datasettes.com/parlgov-25f9855.json Then https://parlgov.datasettes.com/parlgov-25f9855/cabinet.json | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274022950 | |
https://github.com/simonw/datasette/issues/97#issuecomment-392602334 | https://api.github.com/repos/simonw/datasette/issues/97 | 392602334 | MDEyOklzc3VlQ29tbWVudDM5MjYwMjMzNA== | 9599 | 2018-05-28T20:57:21Z | 2018-05-28T20:57:21Z | OWNER | The `/.json` endpoint is more of an implementation detail of the homepage at this point. A better, documented ( http://datasette.readthedocs.io/en/stable/introspection.html#inspect ) endpoint for finding all of the databases and tables is https://parlgov.datasettes.com/-/inspect.json | { "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274022950 | |
https://github.com/simonw/datasette/issues/97#issuecomment-392895733 | https://api.github.com/repos/simonw/datasette/issues/97 | 392895733 | MDEyOklzc3VlQ29tbWVudDM5Mjg5NTczMw== | 231923 | 2018-05-29T18:51:35Z | 2018-05-29T18:51:35Z | NONE | Do you have an existing example with views? | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274022950 | |
https://github.com/simonw/datasette/issues/100#issuecomment-344771130 | https://api.github.com/repos/simonw/datasette/issues/100 | 344771130 | MDEyOklzc3VlQ29tbWVudDM0NDc3MTEzMA== | 9599 | 2017-11-16T00:06:00Z | 2017-11-16T00:06:00Z | OWNER | Aha... it looks like this is a Jinja version problem: https://github.com/ansible/ansible/issues/25381#issuecomment-306492389 Datasette depends on sanic-jinja2 - and that doesn't depend on a particular jinja2 version: https://github.com/lixxu/sanic-jinja2/blob/7e9520850d8c6bb66faf43b7f252593d7efe3452/setup.py#L22 So if you have an older version of Jinja installed, stuff breaks. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274160723 | |
https://github.com/simonw/datasette/issues/100#issuecomment-344864254 | https://api.github.com/repos/simonw/datasette/issues/100 | 344864254 | MDEyOklzc3VlQ29tbWVudDM0NDg2NDI1NA== | 13304454 | 2017-11-16T09:25:10Z | 2017-11-16T09:25:10Z | NONE | @simonw I see. I upgraded sanic-jinja2 and jinja2: it now works flawlessly. Thank you! | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274160723 | |
https://github.com/simonw/datasette/issues/101#issuecomment-344597274 | https://api.github.com/repos/simonw/datasette/issues/101 | 344597274 | MDEyOklzc3VlQ29tbWVudDM0NDU5NzI3NA== | 450244 | 2017-11-15T13:48:55Z | 2017-11-15T13:48:55Z | NONE | This is a duplicate of https://github.com/simonw/datasette/issues/100 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274161964 | |
https://github.com/simonw/datasette/issues/102#issuecomment-754192267 | https://api.github.com/repos/simonw/datasette/issues/102 | 754192267 | MDEyOklzc3VlQ29tbWVudDc1NDE5MjI2Nw== | 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 } |
274264175 | |
https://github.com/simonw/datasette/issues/103#issuecomment-754188099 | https://api.github.com/repos/simonw/datasette/issues/103 | 754188099 | MDEyOklzc3VlQ29tbWVudDc1NDE4ODA5OQ== | 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 } |
274265878 | |
https://github.com/simonw/datasette/pull/104#issuecomment-344710204 | https://api.github.com/repos/simonw/datasette/issues/104 | 344710204 | MDEyOklzc3VlQ29tbWVudDM0NDcxMDIwNA== | 21148 | 2017-11-15T19:57:50Z | 2017-11-15T19:57:50Z | CONTRIBUTOR | A first basic stab at making this work, just to prove the approach. Right now this requires [a Heroku CLI plugin](https://github.com/heroku/heroku-builds), which seems pretty unreasonable. I think this can be replaced with direct API calls, which could clean up a lot of things. But I wanted to prove it worked first, and it does. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274284246 | |
https://github.com/simonw/datasette/pull/104#issuecomment-345447161 | https://api.github.com/repos/simonw/datasette/issues/104 | 345447161 | MDEyOklzc3VlQ29tbWVudDM0NTQ0NzE2MQ== | 9599 | 2017-11-18T14:53:17Z | 2017-11-18T14:53:17Z | OWNER | any reason I shouldn't land this? | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274284246 | |
https://github.com/simonw/datasette/pull/104#issuecomment-345452669 | https://api.github.com/repos/simonw/datasette/issues/104 | 345452669 | MDEyOklzc3VlQ29tbWVudDM0NTQ1MjY2OQ== | 21148 | 2017-11-18T16:18:45Z | 2017-11-18T16:18:45Z | CONTRIBUTOR | I'd like to do a bit of cleanup, and some error checking in case heroku/heroku-builds isn't installed. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274284246 | |
https://github.com/simonw/datasette/pull/104#issuecomment-346116745 | https://api.github.com/repos/simonw/datasette/issues/104 | 346116745 | MDEyOklzc3VlQ29tbWVudDM0NjExNjc0NQ== | 21148 | 2017-11-21T18:23:25Z | 2017-11-21T18:23:25Z | CONTRIBUTOR | @simonw ready for a review and merge if you want. There's still some nasty duplicated code in cli.py and utils.py, which is just going to get worse if/when we start adding any other deploy targets (and I want to do one for cloud.gov, at least). I think there's an opportunity for some refactoring here. I'm happy to do that now as part of this PR, or if you merge this first I'll do it in a different one. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274284246 | |
https://github.com/simonw/datasette/pull/104#issuecomment-346124073 | https://api.github.com/repos/simonw/datasette/issues/104 | 346124073 | MDEyOklzc3VlQ29tbWVudDM0NjEyNDA3Mw== | 21148 | 2017-11-21T18:49:55Z | 2017-11-21T18:49:55Z | CONTRIBUTOR | Actually hang on, don't merge - there are some bugs that #141 masked when I tested this out elsewhere. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274284246 | |
https://github.com/simonw/datasette/pull/104#issuecomment-346124764 | https://api.github.com/repos/simonw/datasette/issues/104 | 346124764 | MDEyOklzc3VlQ29tbWVudDM0NjEyNDc2NA== | 21148 | 2017-11-21T18:52:14Z | 2017-11-21T18:52:14Z | CONTRIBUTOR | OK, now this should work. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274284246 | |
https://github.com/simonw/datasette/issues/105#issuecomment-345493344 | https://api.github.com/repos/simonw/datasette/issues/105 | 345493344 | MDEyOklzc3VlQ29tbWVudDM0NTQ5MzM0NA== | 9599 | 2017-11-19T05:28:49Z | 2017-11-19T05:28:49Z | OWNER | Looks like there are a ton of interesting datasets packaged in this way at http://datahub.io/docs/core-data - see also https://github.com/datasets | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274314940 | |
https://github.com/simonw/datasette/issues/105#issuecomment-345494052 | https://api.github.com/repos/simonw/datasette/issues/105 | 345494052 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NDA1Mg== | 9599 | 2017-11-19T05:49:53Z | 2017-11-19T05:49:53Z | OWNER | https://github.com/rgieseke/pandas-datapackage-reader | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274314940 | |
https://github.com/simonw/datasette/issues/105#issuecomment-345503897 | https://api.github.com/repos/simonw/datasette/issues/105 | 345503897 | MDEyOklzc3VlQ29tbWVudDM0NTUwMzg5Nw== | 198537 | 2017-11-19T09:38:08Z | 2017-11-19T09:38:08Z | CONTRIBUTOR | Thanks, I wrote this very simple reader because the default approach as described on the Datahub pages seemed to complicated. I had metadata from the `datapackage.json` attached to the returned DataFrames but removed this due to some attribute handling change in the latest Pandas version. This could also be useful for getting from Data Package to SQL db: https://github.com/frictionlessdata/tableschema-sql-py I maintain a few climate science related dataset at https://github.com/openclimatedata/ The Data Retriever (mainly ecological data) by @ethanwhite et al. is also using the Data Package format for metadata and has some tooling for different dbs: https://frictionlessdata.io/articles/the-data-retriever/ https://github.com/weecology/retriever The Open Power System Data project also has a couple of datasets that show nicely how CSV is great for assembling and then already make SQLite files available. It's one of the first data sets I tried with Datasette, perfect for the use case of getting an API for putting power stations on a map ... https://data.open-power-system-data.org/ | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274314940 | |
https://github.com/simonw/datasette/issues/105#issuecomment-345809808 | https://api.github.com/repos/simonw/datasette/issues/105 | 345809808 | MDEyOklzc3VlQ29tbWVudDM0NTgwOTgwOA== | 9599 | 2017-11-20T19:50:53Z | 2017-11-20T19:50:53Z | OWNER | OK, https://github.com/openclimatedata/global-carbon-budget/blob/master/datapackage.json really does look like it covers all of the bases I need for #138. Closing this ticket in favour of that new one. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274314940 | |
https://github.com/simonw/datasette/issues/106#issuecomment-504879510 | https://api.github.com/repos/simonw/datasette/issues/106 | 504879510 | MDEyOklzc3VlQ29tbWVudDUwNDg3OTUxMA== | 9599 | 2019-06-24T06:42:33Z | 2019-06-24T06:42:33Z | OWNER | https://datasette.readthedocs.io/en/stable/sql_queries.html?highlight=Pagination#pagination | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274315193 | |
https://github.com/simonw/datasette/pull/107#issuecomment-344770170 | https://api.github.com/repos/simonw/datasette/issues/107 | 344770170 | MDEyOklzc3VlQ29tbWVudDM0NDc3MDE3MA== | 9599 | 2017-11-16T00:01:00Z | 2017-11-16T00:01:22Z | OWNER | It is - but I think this will break on this line since it expects two format string parameters: https://github.com/simonw/datasette/blob/f45ca30f91b92ac68adaba893bf034f13ec61ced/datasette/utils.py#L61 Needs unit tests too, which live here: https://github.com/simonw/datasette/blob/f45ca30f91b92ac68adaba893bf034f13ec61ced/tests/test_utils.py#L49 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274343647 | |
https://github.com/simonw/datasette/pull/107#issuecomment-344811268 | https://api.github.com/repos/simonw/datasette/issues/107 | 344811268 | MDEyOklzc3VlQ29tbWVudDM0NDgxMTI2OA== | 3433657 | 2017-11-16T04:17:45Z | 2017-11-16T04:17:45Z | CONTRIBUTOR | Thanks for the guidance. I added a unit test and made a slight change to utils.py. I didn't realize this, but evidently string.format only complains if you supply less arguments than there are format placeholders, so the original commit worked, but was adding a superfluous named param. I added a conditional that prevents the named param from being created and ensures the correct number of args are passed to sting.format. It has the side effect of hiding the SQL query in /templates/table.html when there are no other where clauses--not sure if that's the desired outcome here. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274343647 | |
https://github.com/simonw/datasette/pull/107#issuecomment-345108644 | https://api.github.com/repos/simonw/datasette/issues/107 | 345108644 | MDEyOklzc3VlQ29tbWVudDM0NTEwODY0NA== | 9599 | 2017-11-17T00:34:46Z | 2017-11-17T00:34:46Z | OWNER | Looks like your tests are failing because of a bug which I fixed in https://github.com/simonw/datasette/commit/9199945a1bcec4852e1cb866eb3642614dd32a48 - if you rebase to master the tests should pass. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274343647 | |
https://github.com/simonw/datasette/pull/107#issuecomment-345117690 | https://api.github.com/repos/simonw/datasette/issues/107 | 345117690 | MDEyOklzc3VlQ29tbWVudDM0NTExNzY5MA== | 3433657 | 2017-11-17T01:29:41Z | 2017-11-17T01:29:41Z | CONTRIBUTOR | Thanks for bearing with me. I was getting a message about my branch diverging when I tried to push after rebasing, so I merged master into isnull, seems like that did the trick. Let me know if I should make any corrections. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274343647 | |
https://github.com/simonw/datasette/issues/109#issuecomment-344986423 | https://api.github.com/repos/simonw/datasette/issues/109 | 344986423 | MDEyOklzc3VlQ29tbWVudDM0NDk4NjQyMw== | 9599 | 2017-11-16T16:53:26Z | 2017-11-16T16:53:26Z | OWNER | http://datasette.readthedocs.io/ | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274378301 | |
https://github.com/simonw/datasette/issues/110#issuecomment-344988263 | https://api.github.com/repos/simonw/datasette/issues/110 | 344988263 | MDEyOklzc3VlQ29tbWVudDM0NDk4ODI2Mw== | 9599 | 2017-11-16T16:58:48Z | 2017-11-16T16:58:48Z | OWNER | Here's how I tested this. First I downloaded and started a docker container using https://hub.docker.com/r/prolocutor/python3-sqlite-ext - which includes the compiled spatialite extension. This downloads it, then starts a shell in that container. docker run -it -p 8018:8018 prolocutor/python3-sqlite-ext:3.5.1-spatialite /bin/sh Installed a pre-release build of datasette which includes the new `--load-extension` option. pip install https://static.simonwillison.net/static/2017/datasette-0.13-py3-none-any.whl Now grab a sample database from https://www.gaia-gis.it/spatialite-2.3.1/resources.html - and unzip and rename it (datasette doesn't yet like databases with dots in their filename): wget http://www.gaia-gis.it/spatialite-2.3.1/test-2.3.sqlite.gz gunzip test-2.3.sqlite.gz mv test-2.3.sqlite test23.sqlite Now start datasette on port 8018 (the port I exposed earlier) with the extension loaded: datasette test23.sqlite -p 8018 -h 0.0.0.0 --load-extension /usr/local/lib/mod_spatialite.so Now I can confirm that it worked: http://localhost:8018/test23-c88bc35?sql=select+ST_AsText%28Geometry%29+from+HighWays+limit+1 <img width="743" alt="test23" src="https://user-images.githubusercontent.com/9599/32904449-39789a3a-caac-11e7-9531-b49f06051e34.png"> If I run datasette without `--load-extension` I get this: datasette test23.sqlite -p 8018 -h 0.0.0.0 <img width="747" alt="test23_and_turn_on_auto-escaping_in_jinja_ _simonw_datasette_82261a6" src="https://user-images.githubusercontent.com/9599/32904508-54e53d78-caac-11e7-9f80-4d96e9f9fb5f.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274578142 | |
https://github.com/simonw/datasette/issues/110#issuecomment-345017256 | https://api.github.com/repos/simonw/datasette/issues/110 | 345017256 | MDEyOklzc3VlQ29tbWVudDM0NTAxNzI1Ng== | 9599 | 2017-11-16T18:38:30Z | 2017-11-16T18:38:30Z | OWNER | To finish up, I committed the image I created in the above so I can run it again in the future: docker commit $(docker ps -lq) datasette-sqlite Now I can run it like this: docker run -it -p 8018:8018 datasette-sqlite datasette /tmp/test23.sqlite -p 8018 -h 0.0.0.0 --load-extension /usr/local/lib/mod_spatialite.so | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274578142 | |
https://github.com/simonw/datasette/issues/111#issuecomment-345013127 | https://api.github.com/repos/simonw/datasette/issues/111 | 345013127 | MDEyOklzc3VlQ29tbWVudDM0NTAxMzEyNw== | 9599 | 2017-11-16T18:23:56Z | 2017-11-16T18:23:56Z | OWNER | Having this as a global option may not make sense when publishing multiple databases. We can revisit that when we implement per-database and per-table metadata. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274615452 | |
https://github.com/simonw/datasette/issues/111#issuecomment-502134167 | https://api.github.com/repos/simonw/datasette/issues/111 | 502134167 | MDEyOklzc3VlQ29tbWVudDUwMjEzNDE2Nw== | 9599 | 2019-06-14T14:37:35Z | 2019-06-14T14:37:35Z | OWNER | We have per-database and per-table metadata now. I think it's time to make this actually happen. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274615452 | |
https://github.com/simonw/datasette/issues/111#issuecomment-502134699 | https://api.github.com/repos/simonw/datasette/issues/111 | 502134699 | MDEyOklzc3VlQ29tbWVudDUwMjEzNDY5OQ== | 9599 | 2019-06-14T14:38:58Z | 2019-06-14T14:38:58Z | OWNER | I think I'll just call it "updated" to avoid the ugly underscore. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274615452 | |
https://github.com/simonw/datasette/issues/111#issuecomment-502135123 | https://api.github.com/repos/simonw/datasette/issues/111 | 502135123 | MDEyOklzc3VlQ29tbWVudDUwMjEzNTEyMw== | 9599 | 2019-06-14T14:39:59Z | 2019-06-14T14:39:59Z | OWNER | This may be the feature that causes me to add dateutilas a dependency (so I can use dateutil.parser.parse) | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274615452 | |
https://github.com/simonw/datasette/issues/111#issuecomment-697545290 | https://api.github.com/repos/simonw/datasette/issues/111 | 697545290 | MDEyOklzc3VlQ29tbWVudDY5NzU0NTI5MA== | 9599 | 2020-09-23T15:29:11Z | 2020-09-23T15:29:11Z | OWNER | This is still a good idea. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274615452 | |
https://github.com/simonw/datasette/issues/111#issuecomment-738904347 | https://api.github.com/repos/simonw/datasette/issues/111 | 738904347 | MDEyOklzc3VlQ29tbWVudDczODkwNDM0Nw== | 9599 | 2020-12-04T17:16:56Z | 2020-12-04T17:16:56Z | OWNER | This is STILL a good idea. | { "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274615452 | |
https://github.com/simonw/datasette/issues/111#issuecomment-923106887 | https://api.github.com/repos/simonw/datasette/issues/111 | 923106887 | IC_kwDOBm6k_c43BX5H | 9599 | 2021-09-20T16:58:39Z | 2021-09-20T16:58:39Z | OWNER | Still a good idea today too! Would be great for https://cdc-vaccination-history.datasette.io/ for example. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274615452 | |
https://github.com/simonw/datasette/issues/111#issuecomment-924432643 | https://api.github.com/repos/simonw/datasette/issues/111 | 924432643 | IC_kwDOBm6k_c43GbkD | 9599 | 2021-09-21T22:23:23Z | 2021-09-21T22:23:23Z | OWNER | I'm going to use https://github.com/dateutil/dateutil for this - it's been maintained constantly (by an evolving team of contributors) [since 2003](https://github.com/dateutil/dateutil/commit/68ae2757ae15c84bf947d47a82a314b3b975bc9b) and is a very trustworthy dependency. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274615452 | |
https://github.com/simonw/datasette/issues/111#issuecomment-924435971 | https://api.github.com/repos/simonw/datasette/issues/111 | 924435971 | IC_kwDOBm6k_c43GcYD | 9599 | 2021-09-21T22:29:15Z | 2021-09-21T22:29:49Z | OWNER | So this is a metadata key called `updated` which can be applied at the table, database or instance level. It is represented as a `.isoformat()` timestamp. Question: should I support just the date - `yyyy-mm-dd` - in addition to the datetime? I think so. I can easily imagine situations where the exact time of day that a change was made hasn't been recorded, but the overall date is known. But in that case, should the `updated` key sometimes be `yyyy-mm-dd` and sometimes be the full isoformat datetime? Or should there be an `updated_date` key that's used for just the date? | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274615452 |