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/123#issuecomment-473313975 | https://api.github.com/repos/simonw/datasette/issues/123 | 473313975 | MDEyOklzc3VlQ29tbWVudDQ3MzMxMzk3NQ== | 9599 | 2019-03-15T14:45:46Z | 2019-03-15T14:45:46Z | OWNER | I'm reopening this one as part of #417. Further experience with Python's CSV standard library module has convinced me that pandas is not a required dependency for this. My [sqlite-utils](https://github.com/simonw/sqlite-utils) package can do most of the work here with very few dependencies. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275125561 | |
https://github.com/simonw/datasette/pull/416#issuecomment-473310026 | https://api.github.com/repos/simonw/datasette/issues/416 | 473310026 | MDEyOklzc3VlQ29tbWVudDQ3MzMxMDAyNg== | 9599 | 2019-03-15T14:35:53Z | 2019-03-15T14:35:53Z | OWNER | See #418 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
421348146 | |
https://github.com/simonw/datasette/issues/417#issuecomment-473308631 | https://api.github.com/repos/simonw/datasette/issues/417 | 473308631 | MDEyOklzc3VlQ29tbWVudDQ3MzMwODYzMQ== | 9599 | 2019-03-15T14:32:13Z | 2019-03-15T14:32:13Z | OWNER | This would allow Datasette to be easily used as a "data library" (like a data warehouse but less expectation of big data querying technology such as Presto). One of the things I learned at the NICAR CAR 2019 conference in Newport Beach is that there is a very real need for some kind of easily accessible data library at most newsrooms. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
421546944 | |
https://github.com/simonw/datasette/issues/415#issuecomment-473217334 | https://api.github.com/repos/simonw/datasette/issues/415 | 473217334 | MDEyOklzc3VlQ29tbWVudDQ3MzIxNzMzNA== | 36796532 | 2019-03-15T09:30:57Z | 2019-03-15T09:30:57Z | NONE | Awesome, thanks! 😁 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
418329842 | |
https://github.com/simonw/datasette/issues/415#issuecomment-473164038 | https://api.github.com/repos/simonw/datasette/issues/415 | 473164038 | MDEyOklzc3VlQ29tbWVudDQ3MzE2NDAzOA== | 9599 | 2019-03-15T05:31:21Z | 2019-03-15T05:31:21Z | OWNER | Demo: https://latest.datasette.io/fixtures-dd88475?sql=select+%2A+from+sortable+order+by+pk1%2C+pk2+limit+101 <img width="761" alt="Screen Shot 2019-03-14 at 10 30 47 PM" src="https://user-images.githubusercontent.com/9599/54410469-d5631000-46a8-11e9-8f77-d8fb5dd8fd23.png"> v.s. https://latest.datasette.io/fixtures-dd88475?sql=select+%2A+from+sortable+order+by+pk1%2C+pk2+limit+101&_hide_sql=1 <img width="761" alt="Screen Shot 2019-03-14 at 10 31 05 PM" src="https://user-images.githubusercontent.com/9599/54410489-e27fff00-46a8-11e9-9207-8245b62f1cf4.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
418329842 | |
https://github.com/simonw/datasette/pull/416#issuecomment-473160702 | https://api.github.com/repos/simonw/datasette/issues/416 | 473160702 | MDEyOklzc3VlQ29tbWVudDQ3MzE2MDcwMg== | 9599 | 2019-03-15T05:08:13Z | 2019-03-15T05:08:13Z | OWNER | This also needs extensive tests to ensure that with the option turned on all of the redirects behave as they should. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
421348146 | |
https://github.com/simonw/datasette/pull/413#issuecomment-473160476 | https://api.github.com/repos/simonw/datasette/issues/413 | 473160476 | MDEyOklzc3VlQ29tbWVudDQ3MzE2MDQ3Ng== | 9599 | 2019-03-15T05:06:37Z | 2019-03-15T05:06:37Z | OWNER | Thanks! | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
413887019 | |
https://github.com/simonw/datasette/pull/416#issuecomment-473159679 | https://api.github.com/repos/simonw/datasette/issues/416 | 473159679 | MDEyOklzc3VlQ29tbWVudDQ3MzE1OTY3OQ== | 9599 | 2019-03-15T05:01:27Z | 2019-03-15T05:01:27Z | OWNER | Also: if the option is False and the user visits a URL with a hash in it, should we redirect them? I'm inclined to say no: furthermore, I'd be OK continuing to serve a far-future cache header for that case. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
421348146 | |
https://github.com/simonw/datasette/issues/412#issuecomment-473158506 | https://api.github.com/repos/simonw/datasette/issues/412 | 473158506 | MDEyOklzc3VlQ29tbWVudDQ3MzE1ODUwNg== | 9599 | 2019-03-15T04:53:53Z | 2019-03-15T04:53:53Z | OWNER | I've been thinking about how Datasette instances could query each other for a while - it's a really interesting direction. There are some tricky problems to solve to get this to work. There's a SQLite mechanism called "virtual table functions" which can implement things like this, but it's not supported by Python's `sqlite3` module out of the box. https://github.com/coleifer/sqlite-vtfunc is a library that enables this feature. I experimented with using that to implement a function that scrapes HTML content (with an eye to accessing data from other APIs and Datasette instances) a while ago: https://github.com/coleifer/sqlite-vtfunc/issues/6 The bigger challenge is how to get this kind of thing to behave well within a Python 3 async environment. I have some ideas here but they're going to require some very crafty engineering. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
411257981 | |
https://github.com/simonw/datasette/issues/415#issuecomment-473157770 | https://api.github.com/repos/simonw/datasette/issues/415 | 473157770 | MDEyOklzc3VlQ29tbWVudDQ3MzE1Nzc3MA== | 9599 | 2019-03-15T04:49:03Z | 2019-03-15T04:49:03Z | OWNER | Interesting idea. I can see how this would make sense if you are dealing with really long SQL queries. My own example of a long query that might benefit from this: https://russian-ads-demo.herokuapp.com/russian-ads-a42c4e8?sql=select%0D%0A++++target_id%2C%0D%0A++++targets.name%2C%0D%0A++++count(*)+as+n%2C%0D%0A++++json_object(%0D%0A++++++++%22href%22%2C+%22%2Frussian-ads%2Ffaceted-targets%3Ftargets%3D%22+||+%0D%0A++++++++++++json_insert(%3Atargets%2C+%27%24[%27+||+json_array_length(%3Atargets)+||+%27]%27%2C+target_id)%0D%0A++++++++%2C%0D%0A++++++++%22label%22%2C+json_insert(%3Atargets%2C+%27%24[%27+||+json_array_length(%3Atargets)+||+%27]%27%2C+target_id)%0D%0A++++)+as+apply_this_facet%2C%0D%0A++++json_object(%0D%0A++++++++%22href%22%2C+%22%2Frussian-ads%2Fdisplay_ads%3F_targets_json%3D%22+||+%0D%0A++++++++++++json_insert(%3Atargets%2C+%27%24[%27+||+json_array_length(%3Atargets)+||+%27]%27%2C+target_id)%0D%0A++++++++%2C%0D%0A++++++++%22label%22%2C+%22See+%22+||+count(*)+||+%22+ads+matching+%22+||+json_insert(%3Atargets%2C+%27%24[%27+||+json_array_length(%3Atargets)+||+%27]%27%2C+target_id)%0D%0A++++)+as+browse_these_ads%0D%0Afrom+ad_targets%0D%0Ajoin+targets+on+ad_targets.target_id+%3D+targets.id%0D%0Awhere%0D%0A++++json_array_length(%3Atargets)+%3D%3D+0+or%0D%0A++++ad_id+in+(%0D%0A++++++++select+ad_id%0D%0A++++++++from+%22ad_targets%22%0D%0A++++++++where+%22ad_targets%22.target_id+in+(select+value+from+json_each(%3Atargets))%0D%0A++++++++group+by+%22ad_targets%22.ad_id%0D%0A++++++++having+count(distinct+%22ad_targets%22.target_id)+%3D+json_array_length(%3Atargets)%0D%0A++++)%0D%0A++++and+target_id+not+in+(select+value+from+json_each(%3Atargets))%0D%0Agroup+by%0D%0A++++target_id+order+by+n+desc%0D%0A&targets=[%22e6200%22] Having a `show/hide` link would be an easy way to support this in the UI, and those could add/remove a `_hide_sql=1` parameter. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
418329842 | |
https://github.com/simonw/datasette/issues/411#issuecomment-473156905 | https://api.github.com/repos/simonw/datasette/issues/411 | 473156905 | MDEyOklzc3VlQ29tbWVudDQ3MzE1NjkwNQ== | 9599 | 2019-03-15T04:42:58Z | 2019-03-15T04:42:58Z | OWNER | Have you tried this? MakePoint(:Long || ", " || :Lat) | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
410384988 | |
https://github.com/simonw/datasette/issues/414#issuecomment-473156774 | https://api.github.com/repos/simonw/datasette/issues/414 | 473156774 | MDEyOklzc3VlQ29tbWVudDQ3MzE1Njc3NA== | 9599 | 2019-03-15T04:42:06Z | 2019-03-15T04:42:06Z | OWNER | This has been bothering me as well, especially when I try to install `datasette` and `sqlite-utils` at the same time. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
415575624 | |
https://github.com/simonw/datasette/pull/416#issuecomment-473156513 | https://api.github.com/repos/simonw/datasette/issues/416 | 473156513 | MDEyOklzc3VlQ29tbWVudDQ3MzE1NjUxMw== | 9599 | 2019-03-15T04:40:29Z | 2019-03-15T04:40:29Z | OWNER | Still TODO: need to figure out what to do about cache TTL. Defaulting to 365 days no longer makes sense without the hash_urls setting. Maybe drop that setting default to 0? Here's the setting: https://github.com/simonw/datasette/blob/9743e1d91b5f0a2b3c1c0bd6ffce8739341f43c4/datasette/app.py#L84-L86 And here's where it takes affect: https://github.com/simonw/datasette/blob/4462a5ab2817ac0d9ffe20dafbbf27c5c5b81466/datasette/views/base.py#L491-L501 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
421348146 | |
https://github.com/simonw/datasette/pull/416#issuecomment-473154643 | https://api.github.com/repos/simonw/datasette/issues/416 | 473154643 | MDEyOklzc3VlQ29tbWVudDQ3MzE1NDY0Mw== | 9599 | 2019-03-15T04:27:47Z | 2019-03-15T04:28:00Z | OWNER | Deployed a demo: https://datasette-optional-hash-demo.now.sh/ datasette publish now \ ../demo-databses/russian-ads.db \ ../demo-databses/polar-bears.db \ --branch=optional-hash \ -n datasette-optional-hash \ --alias datasette-optional-hash-demo \ --install=datasette-cluster-map \ --install=datasette-json-html | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
421348146 |