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/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/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/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/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/14#issuecomment-344438724 | https://api.github.com/repos/simonw/datasette/issues/14 | 344438724 | MDEyOklzc3VlQ29tbWVudDM0NDQzODcyNA== | 9599 | 2017-11-14T23:47:54Z | 2017-11-14T23:47:54Z | OWNER | Plugins should be able to interact with the build step. This would give plugins an opportunity to modify the SQL databases and help prepare them for serving - for example, a full-text search plugin might create additional FTS tables, or a mapping plugin might pre-calculate a bunch of geohashes for tables that have latitude/longitude values. Plugins could really take advantage of the immutable nature of the dataset here. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
267707940 | |
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/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/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/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/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/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/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/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/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/46#issuecomment-344810525 | https://api.github.com/repos/simonw/datasette/issues/46 | 344810525 | MDEyOklzc3VlQ29tbWVudDM0NDgxMDUyNQ== | 54999 | 2017-11-16T04:11:25Z | 2017-11-16T04:11:25Z | CONTRIBUTOR | @simonw On the spatialite support, here is some info to make it work and a screenshot: <img width="1230" alt="screen shot 2017-11-15 at 11 08 14 pm" src="https://user-images.githubusercontent.com/54999/32873420-f8a6d5a0-ca59-11e7-8a73-7d58d467e413.png"> I used the following Dockerfile: ``` FROM prolocutor/python3-sqlite-ext:3.5.1-spatialite as build RUN mkdir /code ADD . /code/ RUN pip install /code/ EXPOSE 8001 CMD ["datasette", "serve", "/code/ne.sqlite", "--host", "0.0.0.0"] ``` and added this to `prepare_connection`: ``` conn.enable_load_extension(True) conn.execute("SELECT load_extension('/usr/local/lib/mod_spatialite.so')") ``` | { "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
271301468 | |
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/issues/46#issuecomment-344975156 | https://api.github.com/repos/simonw/datasette/issues/46 | 344975156 | MDEyOklzc3VlQ29tbWVudDM0NDk3NTE1Ng== | 9599 | 2017-11-16T16:19:44Z | 2017-11-16T16:19:44Z | OWNER | That's fantastic! Thank you very much for that. Do you know if it's possible to view the Dockerfile used by https://hub.docker.com/r/prolocutor/python3-sqlite-ext/ ? | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
271301468 | |
https://github.com/simonw/datasette/issues/46#issuecomment-344976104 | https://api.github.com/repos/simonw/datasette/issues/46 | 344976104 | MDEyOklzc3VlQ29tbWVudDM0NDk3NjEwNA== | 9599 | 2017-11-16T16:22:45Z | 2017-11-16T16:22:45Z | OWNER | Found a relevant Dockerfile on Reddit: https://www.reddit.com/r/Python/comments/5unkb3/install_sqlite3_on_python_3/ddzdz2b/ | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
271301468 | |
https://github.com/simonw/datasette/issues/46#issuecomment-344976882 | https://api.github.com/repos/simonw/datasette/issues/46 | 344976882 | MDEyOklzc3VlQ29tbWVudDM0NDk3Njg4Mg== | 9599 | 2017-11-16T16:25:07Z | 2017-11-16T16:25:07Z | OWNER | Maybe part of the solution here is to add a `--load-extension` argument to `datasette` - so when you run the command you can specify SQLite extensions that should be loaded. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
271301468 | |
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/46#issuecomment-344988591 | https://api.github.com/repos/simonw/datasette/issues/46 | 344988591 | MDEyOklzc3VlQ29tbWVudDM0NDk4ODU5MQ== | 9599 | 2017-11-16T16:59:51Z | 2017-11-16T16:59:51Z | OWNER | OK, `--load-extension` is now a supported command line option - see #110 which includes my notes on how I manually tested it using the `prolocutor/python3-sqlite-ext` Docker image. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
271301468 | |
https://github.com/simonw/datasette/issues/46#issuecomment-344989340 | https://api.github.com/repos/simonw/datasette/issues/46 | 344989340 | MDEyOklzc3VlQ29tbWVudDM0NDk4OTM0MA== | 9599 | 2017-11-16T17:02:07Z | 2017-11-16T17:02:07Z | OWNER | The fact that `prolocutor/python3-sqlite-ext` doesn't provide a visible Dockerfile and hasn't been updated in two years makes me hesitant to bake it into datasette itself. I'd rather put together a Dockerfile that enables the necessary extensions and can live in the datasette repository itself. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
271301468 | |
https://github.com/simonw/datasette/issues/46#issuecomment-344995571 | https://api.github.com/repos/simonw/datasette/issues/46 | 344995571 | MDEyOklzc3VlQ29tbWVudDM0NDk5NTU3MQ== | 9599 | 2017-11-16T17:22:32Z | 2017-11-16T17:22:32Z | OWNER | The JSON extension would be very worthwhile too: https://www.sqlite.org/json1.html | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
271301468 | |
https://github.com/simonw/datasette/issues/14#issuecomment-345067498 | https://api.github.com/repos/simonw/datasette/issues/14 | 345067498 | MDEyOklzc3VlQ29tbWVudDM0NTA2NzQ5OA== | 9599 | 2017-11-16T21:25:32Z | 2017-11-16T21:26:22Z | OWNER | For visualizations, Google Maps should be made available as a plugin. The default visualizations can use Leaflet and Open Street Map, but there's no reason to not make Google Maps available as a plugin, especially if the plugin can provide a mechanism for configuring the necessary API key. I'm particularly excited in the Google Maps heatmap visualization https://developers.google.com/maps/documentation/javascript/heatmaplayer as seen on http://mochimachine.org/wasteland/ | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
267707940 | |
https://github.com/simonw/datasette/issues/46#issuecomment-345002908 | https://api.github.com/repos/simonw/datasette/issues/46 | 345002908 | MDEyOklzc3VlQ29tbWVudDM0NTAwMjkwOA== | 54999 | 2017-11-16T17:47:49Z | 2017-11-16T17:47:49Z | CONTRIBUTOR | I'll try to find alternatives to the Dockerfile option - I also think we should not use that old one without sources or license. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
271301468 | |
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/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/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/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/pull/114#issuecomment-345138134 | https://api.github.com/repos/simonw/datasette/issues/114 | 345138134 | MDEyOklzc3VlQ29tbWVudDM0NTEzODEzNA== | 9599 | 2017-11-17T03:50:38Z | 2017-11-17T03:50:38Z | OWNER | Fantastic! Thank you very much. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274733145 | |
https://github.com/simonw/datasette/issues/46#issuecomment-345138347 | https://api.github.com/repos/simonw/datasette/issues/46 | 345138347 | MDEyOklzc3VlQ29tbWVudDM0NTEzODM0Nw== | 9599 | 2017-11-17T03:52:25Z | 2017-11-17T03:52:25Z | OWNER | We now have a Dockerfile that compiles spatialite! https://github.com/simonw/datasette/pull/114/commits/6c6b63d890529eeefcefb7ab126ea3bd7b2315c1 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
271301468 | |
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/112#issuecomment-345255655 | https://api.github.com/repos/simonw/datasette/issues/112 | 345255655 | MDEyOklzc3VlQ29tbWVudDM0NTI1NTY1NQ== | 9599 | 2017-11-17T14:19:23Z | 2017-11-17T14:19:23Z | OWNER | I tesed this by first building and running a container using the new Dockerfile from #114: docker build . docker run -it -p 8001:8001 6c9ca7e29181 /bin/sh Then I ran this inside the container itself: apt update && apt-get install wget -y \ && 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 \ && datasette -h 0.0.0.0 test23.sqlite I visited this URL to confirm I got an error due to spatialite not being loaded: http://localhost:8001/test23-c88bc35?sql=select+ST_AsText%28Geometry%29+from+HighWays+limit+1 Then I checked that loading it with `--load-extension` worked correctly: datasette -h 0.0.0.0 test23.sqlite \ --load-extension=/usr/lib/x86_64-linux-gnu/mod_spatialite.so Then, finally, I tested it with the new environment variable option: SQLITE_EXTENSIONS=/usr/lib/x86_64-linux-gnu/mod_spatialite.so \ datasette -h 0.0.0.0 test23.sqlite Running it with an invalid environment variable option shows an error: $ SQLITE_EXTENSIONS=/usr/lib/x86_64-linux-gnu/blah.so datasette \ -h 0.0.0.0 test23.sqlite Usage: datasette -h [OPTIONS] [FILES]... Error: Invalid value for "--load-extension": Path "/usr/lib/x86_64-linux-gnu/blah.so" does not exist. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274617240 | |
https://github.com/simonw/datasette/pull/115#issuecomment-345256576 | https://api.github.com/repos/simonw/datasette/issues/115 | 345256576 | MDEyOklzc3VlQ29tbWVudDM0NTI1NjU3Ng== | 9599 | 2017-11-17T14:22:51Z | 2017-11-17T14:22:51Z | OWNER | This is great - I've been frustrated by how CodeMirror prevents me from hitting tab-enter to activate the "Run SQL" button. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274877366 | |
https://github.com/simonw/datasette/issues/46#issuecomment-345259115 | https://api.github.com/repos/simonw/datasette/issues/46 | 345259115 | MDEyOklzc3VlQ29tbWVudDM0NTI1OTExNQ== | 9599 | 2017-11-17T14:32:12Z | 2017-11-17T14:32:12Z | OWNER | OK, I can confirm that the version in the new docker container supports FTS5, JSON *and* spatialite! Notes on how I built the container and tested the spatialite extension are here: https://github.com/simonw/datasette/issues/112#issuecomment-345255655 To confirm that JSON and FTS5 are working, I ran the following: $ docker run -it -p 8001:8001 6c9ca7e29181 python Python 3.6.3 (default, Nov 4 2017, 14:24:48) [GCC 6.3.0 20170516] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import sqlite3 >>> sqlite3.connect(':memory:').execute('CREATE VIRTUAL TABLE email USING fts5(sender, title, body);') <sqlite3.Cursor object at 0x7f2d90839960> >>> list(sqlite3.connect(':memory:').execute('''SELECT json(' { "this" : "is", "a": [ "test" ] } ') ''')) [('{"this":"is","a":["test"]}',)] If I do the same thing in python3 on my OS X laptop directly, I get this: $ python3 Python 3.5.1 (default, Apr 18 2016, 11:46:32) [GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.29)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import sqlite3 >>> sqlite3.connect(':memory:').execute('CREATE VIRTUAL TABLE email USING fts5(sender, title, body);') Traceback (most recent call last): File "<stdin>", line 1, in <module> sqlite3.OperationalError: no such module: fts5 >>> list(sqlite3.connect(':memory:').execute('''SELECT json(' { "this" : "is", "a": [ "test" ] } ') ''')) Traceback (most recent call last): File "<stdin>", line 1, in <module> sqlite3.OperationalError: no such function: json | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
271301468 | |
https://github.com/simonw/datasette/issues/64#issuecomment-345260784 | https://api.github.com/repos/simonw/datasette/issues/64 | 345260784 | MDEyOklzc3VlQ29tbWVudDM0NTI2MDc4NA== | 9599 | 2017-11-17T14:38:21Z | 2017-11-17T14:38:21Z | OWNER | This was fixed by ed2b3f25beac720f14869350baacc5f62b065194 in #107 - thanks @raynae! | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
273181020 | |
https://github.com/simonw/datasette/issues/36#issuecomment-345262738 | https://api.github.com/repos/simonw/datasette/issues/36 | 345262738 | MDEyOklzc3VlQ29tbWVudDM0NTI2MjczOA== | 9599 | 2017-11-17T14:45:37Z | 2017-11-17T14:45:37Z | OWNER | Consider for example https://fivethirtyeight.datasettes.com/fivethirtyeight/inconvenient-sequel%2Fratings <img width="719" alt="fivethirtyeight__inconvenient-sequel_ratings" src="https://user-images.githubusercontent.com/9599/32952559-82b81ea8-cb62-11e7-817a-45c8bba7e9a2.png"> The idea here is to be able to support querystring parameters like this: * `?timestamp___date=2017-07-17` - return every item where the timestamp falls on that date * `?timestamp___year=2017` - return every item where the timestamp falls within 2017 * `?timestamp___month=1` - return every item where the month component is January * `?timestamp___day=10` - return every item where the day-of-the-month component is 10 This is similar to #64 but a fair bit more complicated. SQLite date functions are documented here: https://sqlite.org/lang_datefunc.html | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
268262480 | |
https://github.com/simonw/datasette/issues/44#issuecomment-345342512 | https://api.github.com/repos/simonw/datasette/issues/44 | 345342512 | MDEyOklzc3VlQ29tbWVudDM0NTM0MjUxMg== | 9599 | 2017-11-17T19:27:53Z | 2017-11-20T04:37:35Z | OWNER | This should support multiple columns, e.g. `?_group_count=precinct&_group_count=candidate` | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
269731374 | |
https://github.com/simonw/datasette/issues/44#issuecomment-345343079 | https://api.github.com/repos/simonw/datasette/issues/44 | 345343079 | MDEyOklzc3VlQ29tbWVudDM0NTM0MzA3OQ== | 9599 | 2017-11-17T19:29:43Z | 2017-11-17T19:29:43Z | OWNER | Should this support sum/avg/etc as well? | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
269731374 | |
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/issues/36#issuecomment-345448756 | https://api.github.com/repos/simonw/datasette/issues/36 | 345448756 | MDEyOklzc3VlQ29tbWVudDM0NTQ0ODc1Ng== | 9599 | 2017-11-18T15:17:43Z | 2017-11-18T15:17:43Z | OWNER | This may be useful: https://github.com/coleifer/peewee/blob/db85167d93861451a1fe7cde8c4f05748b222634/peewee.py#L162-L185 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
268262480 | |
https://github.com/simonw/datasette/issues/121#issuecomment-345452215 | https://api.github.com/repos/simonw/datasette/issues/121 | 345452215 | MDEyOklzc3VlQ29tbWVudDM0NTQ1MjIxNQ== | 9599 | 2017-11-18T16:11:23Z | 2017-11-18T16:11:23Z | OWNER | If a column value is invalid JSON, let's return the invalid JSON as a regular string. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275089535 | |
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/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/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/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/44#issuecomment-345494971 | https://api.github.com/repos/simonw/datasette/issues/44 | 345494971 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NDk3MQ== | 9599 | 2017-11-19T06:15:39Z | 2017-11-19T06:15:39Z | OWNER | It would be great if this could support foreign key references and automatically resolve and hyperlink them if they are detected. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
269731374 | |
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/127#issuecomment-345495046 | https://api.github.com/repos/simonw/datasette/issues/127 | 345495046 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NTA0Ng== | 9599 | 2017-11-19T06:17:42Z | 2017-11-19T06:17:42Z | OWNER | Maybe I should support `&_count=1` to handle this - that would be easy to Ajax-in in conjenction with the other filters. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275135719 | |
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/pull/117#issuecomment-345404257 | https://api.github.com/repos/simonw/datasette/issues/117 | 345404257 | MDEyOklzc3VlQ29tbWVudDM0NTQwNDI1Nw== | 9599 | 2017-11-18T00:53:58Z | 2017-11-18T00:53:58Z | OWNER | Thanks! | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
274900388 | |
https://github.com/simonw/datasette/issues/122#issuecomment-345552358 | https://api.github.com/repos/simonw/datasette/issues/122 | 345552358 | MDEyOklzc3VlQ29tbWVudDM0NTU1MjM1OA== | 9599 | 2017-11-19T21:45:38Z | 2017-12-05T19:09:52Z | OWNER | For the overall shape of the rows: `?_shape=lists` (default), `?_shape=objects`, `?_shape=object` (primary key as object keys) For getting back extra keys: `?_extras=schema,query,timing` For expanding columns: `?_expand_all=1` Or `?_expand=qSpecies&_expand=qCaretaker` The template view will only be allowed to work with data it can request using extra options. That leaves one sighted nasty edge-case: the default view will expand all columns, but the `.json` view of it won't? I think that's OK. The default view won't include the extras used by the template to render the page either. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275092453 | |
https://github.com/simonw/datasette/issues/122#issuecomment-345552440 | https://api.github.com/repos/simonw/datasette/issues/122 | 345552440 | MDEyOklzc3VlQ29tbWVudDM0NTU1MjQ0MA== | 9599 | 2017-11-19T21:46:43Z | 2017-11-19T21:46:43Z | OWNER | This calls for refactoring the code so the table view, the row view and the custom SQL view share as much logic as possible. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275092453 | |
https://github.com/simonw/datasette/issues/122#issuecomment-345552500 | https://api.github.com/repos/simonw/datasette/issues/122 | 345552500 | MDEyOklzc3VlQ29tbWVudDM0NTU1MjUwMA== | 9599 | 2017-11-19T21:47:27Z | 2017-11-19T21:47:27Z | OWNER | To start with, I could just ditch the .jsono in favour of the new _shape argument. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275092453 | |
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/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/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/131#issuecomment-345526171 | https://api.github.com/repos/simonw/datasette/issues/131 | 345526171 | MDEyOklzc3VlQ29tbWVudDM0NTUyNjE3MQ== | 9599 | 2017-11-19T15:44:30Z | 2017-11-19T15:44:30Z | OWNER | Relevant SQLite docs: * https://sqlite.org/fts5.html * https://www.sqlite.org/fts3.html | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275166669 | |
https://github.com/simonw/datasette/issues/131#issuecomment-345526517 | https://api.github.com/repos/simonw/datasette/issues/131 | 345526517 | MDEyOklzc3VlQ29tbWVudDM0NTUyNjUxNw== | 9599 | 2017-11-19T15:48:28Z | 2017-11-19T15:48:28Z | OWNER | Since SQLite supports column specifications in the MATCH body itself, there's no need to provide a separate mechanism for specifying columns in the query string: https://sqlite.org/fts5.html#fts5_column_filters | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275166669 | |
https://github.com/simonw/datasette/issues/131#issuecomment-345533274 | https://api.github.com/repos/simonw/datasette/issues/131 | 345533274 | MDEyOklzc3VlQ29tbWVudDM0NTUzMzI3NA== | 9599 | 2017-11-19T17:17:37Z | 2017-11-19T17:18:05Z | OWNER | Demo: https://sf-trees.now.sh/sf-trees-ebc2ad9/Street_Tree_List?_search=grove+st <img width="906" alt="sf-trees__street_tree_list_and_https___datasette-publish-dev_now_sh_auth__code_jigy80kxgsfddalfdwqwldzm" src="https://user-images.githubusercontent.com/9599/32993276-8bd62cce-cd0a-11e7-9d91-dc718d3eb4ab.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275166669 | |
https://github.com/simonw/datasette/issues/134#issuecomment-345537268 | https://api.github.com/repos/simonw/datasette/issues/134 | 345537268 | MDEyOklzc3VlQ29tbWVudDM0NTUzNzI2OA== | 9599 | 2017-11-19T18:10:48Z | 2017-11-19T18:10:48Z | OWNER | Dupe of #127 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275176094 | |
https://github.com/simonw/datasette/issues/44#issuecomment-345537315 | https://api.github.com/repos/simonw/datasette/issues/44 | 345537315 | MDEyOklzc3VlQ29tbWVudDM0NTUzNzMxNQ== | 9599 | 2017-11-19T18:11:27Z | 2017-11-19T18:11:27Z | OWNER | This would enable faceted search - moving it to the search milestone. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
269731374 | |
https://github.com/simonw/datasette/issues/127#issuecomment-345538016 | https://api.github.com/repos/simonw/datasette/issues/127 | 345538016 | MDEyOklzc3VlQ29tbWVudDM0NTUzODAxNg== | 9599 | 2017-11-19T18:22:45Z | 2017-11-19T18:22:45Z | OWNER | I implemented a basic version of this in f59c840e7db8870afcdeba7a53bdea07bb674334 for custom SQL. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275135719 | |
https://github.com/simonw/datasette/issues/27#issuecomment-345652450 | https://api.github.com/repos/simonw/datasette/issues/27 | 345652450 | MDEyOklzc3VlQ29tbWVudDM0NTY1MjQ1MA== | 198537 | 2017-11-20T10:19:39Z | 2017-11-20T10:19:39Z | CONTRIBUTOR | If Data Package metadata gets adopted (#105) the views spec work might also be worth a look: http://frictionlessdata.io/specs/views/ http://datahub.io/docs/features/views | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
267886330 | |
https://github.com/simonw/datasette/issues/44#issuecomment-345601103 | https://api.github.com/repos/simonw/datasette/issues/44 | 345601103 | MDEyOklzc3VlQ29tbWVudDM0NTYwMTEwMw== | 9599 | 2017-11-20T06:13:35Z | 2017-11-20T06:13:35Z | OWNER | Some demos: Single column: https://sf-trees-flat.now.sh/sf-trees-flat-ba738ce/Street_Tree_List?_group_count=qSpecies Multi column: https://sf-trees-flat.now.sh/sf-trees-flat-ba738ce/Street_Tree_List?_group_count=qLegalStatus&_group_count=qSpecies | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
269731374 | |
https://github.com/simonw/datasette/issues/133#issuecomment-345601870 | https://api.github.com/repos/simonw/datasette/issues/133 | 345601870 | MDEyOklzc3VlQ29tbWVudDM0NTYwMTg3MA== | 9599 | 2017-11-20T06:18:53Z | 2017-11-20T06:18:53Z | OWNER | This may be tackled by the filters work happening in #86 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275176006 | |
https://github.com/simonw/datasette/issues/137#issuecomment-345750135 | https://api.github.com/repos/simonw/datasette/issues/137 | 345750135 | MDEyOklzc3VlQ29tbWVudDM0NTc1MDEzNQ== | 9599 | 2017-11-20T16:30:56Z | 2018-07-10T17:53:13Z | OWNER | One possible route: introduce prefixes eg `?a.Trees.age__gt=5&a.Trees._group_count=qSpecies&b.Trees.age__gt=10&b.Trees._group_count=qSpecies` | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275415799 | |
https://github.com/simonw/datasette/issues/129#issuecomment-345793887 | https://api.github.com/repos/simonw/datasette/issues/129 | 345793887 | MDEyOklzc3VlQ29tbWVudDM0NTc5Mzg4Nw== | 9599 | 2017-11-20T19:00:30Z | 2017-11-20T19:00:30Z | OWNER | Need to hide these from the index summary page as well: <img width="1237" alt="datasette__archive-fires-indonesia__conventional_power_plants_eu__fatal-police-shootings-data__fivethirtyeight__flights__google-trends__nhsadmin__northwind__openelections__polar-bears__sf-trees-fks__venue_profile" src="https://user-images.githubusercontent.com/9599/33036011-0471beaa-cde2-11e7-8d01-86eb45476943.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275164558 | |
https://github.com/simonw/datasette/issues/14#issuecomment-345893877 | https://api.github.com/repos/simonw/datasette/issues/14 | 345893877 | MDEyOklzc3VlQ29tbWVudDM0NTg5Mzg3Nw== | 9599 | 2017-11-21T02:11:27Z | 2017-11-21T02:11:27Z | OWNER | http://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins Is pretty good | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
267707940 | |
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/42#issuecomment-345810031 | https://api.github.com/repos/simonw/datasette/issues/42 | 345810031 | MDEyOklzc3VlQ29tbWVudDM0NTgxMDAzMQ== | 9599 | 2017-11-20T19:51:29Z | 2017-11-20T19:51:29Z | OWNER | See also #138 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
268591332 | |
https://github.com/simonw/datasette/issues/141#issuecomment-346157542 | https://api.github.com/repos/simonw/datasette/issues/141 | 346157542 | MDEyOklzc3VlQ29tbWVudDM0NjE1NzU0Mg== | 9599 | 2017-11-21T20:53:47Z | 2017-11-21T20:53:47Z | OWNER | I think a copy is the right thing to do here - it will be cleaned up when the temp directory is removed. The hard link thing was always intended to save space, but if we can't do a hard link I don't see any harm in a temporary file copy. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275814941 | |
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/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/14#issuecomment-346244871 | https://api.github.com/repos/simonw/datasette/issues/14 | 346244871 | MDEyOklzc3VlQ29tbWVudDM0NjI0NDg3MQ== | 21148 | 2017-11-22T05:06:30Z | 2017-11-22T05:06:30Z | CONTRIBUTOR | I'd also suggest taking a look at [stevedore](https://docs.openstack.org/stevedore/latest/), which has a ton of tools for doing plugin stuff. I've had good luck with it in the past. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
267707940 | |
https://github.com/simonw/datasette/issues/142#issuecomment-346217739 | https://api.github.com/repos/simonw/datasette/issues/142 | 346217739 | MDEyOklzc3VlQ29tbWVudDM0NjIxNzczOQ== | 9599 | 2017-11-22T01:45:30Z | 2017-11-22T01:45:30Z | OWNER | Might be nice to have a --no-limits option that disables time and maximum row count limits. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275917760 | |
https://github.com/simonw/datasette/issues/129#issuecomment-346463342 | https://api.github.com/repos/simonw/datasette/issues/129 | 346463342 | MDEyOklzc3VlQ29tbWVudDM0NjQ2MzM0Mg== | 9599 | 2017-11-22T20:22:02Z | 2017-11-22T20:22:02Z | OWNER | On the index page: <img width="590" alt="datasette__archive-fires-indonesia__conventional_power_plants_eu__fatal-police-shootings-data__fivethirtyeight__flights__google-trends__nhsadmin__northwind__openelections__polar-bears__sf-trees__sf-trees-fks__venue_profile_and_hide_fts-crea" src="https://user-images.githubusercontent.com/9599/33148136-7b8964ea-cf7f-11e7-87ff-654b4d152645.png"> On the database index page: <img width="321" alt="sf-trees" src="https://user-images.githubusercontent.com/9599/33148156-87df1aa0-cf7f-11e7-8480-64cc29201984.png"> After clicking that link: <img width="744" alt="sf-trees" src="https://user-images.githubusercontent.com/9599/33148178-9f7d510e-cf7f-11e7-8959-5ad64f8637a8.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
275164558 | |
https://github.com/simonw/datasette/issues/144#issuecomment-346405660 | https://api.github.com/repos/simonw/datasette/issues/144 | 346405660 | MDEyOklzc3VlQ29tbWVudDM0NjQwNTY2MA== | 9599 | 2017-11-22T16:38:05Z | 2017-11-22T16:38:05Z | OWNER | I have a solution for FTS already, but I'm interested in apsw as a mechanism for allowing custom virtual tables to be written in Python (pysqlite only lets you write custom functions) Not having PyPI support is pretty tough though. I'm planning a plugin/extension system which would be ideal for things like an optional apsw mode, but that's a lot harder if apsw isn't in PyPI. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
276091279 | |
https://github.com/simonw/datasette/issues/14#issuecomment-346406009 | https://api.github.com/repos/simonw/datasette/issues/14 | 346406009 | MDEyOklzc3VlQ29tbWVudDM0NjQwNjAwOQ== | 9599 | 2017-11-22T16:39:08Z | 2017-11-22T16:39:08Z | OWNER | Oh thanks, that definitely looks like an interesting option. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
267707940 | |
https://github.com/simonw/datasette/issues/144#issuecomment-346427794 | https://api.github.com/repos/simonw/datasette/issues/144 | 346427794 | MDEyOklzc3VlQ29tbWVudDM0NjQyNzc5NA== | 649467 | 2017-11-22T17:55:45Z | 2017-11-22T17:55:45Z | NONE | Thanks. There is a way to use pip to grab apsw, which also let's you configure it (flags to build extensions, use an internal sqlite, etc). Don't know how that works as a dependency for another package, though. On November 22, 2017 11:38:06 AM EST, Simon Willison <notifications@github.com> wrote: >I have a solution for FTS already, but I'm interested in apsw as a >mechanism for allowing custom virtual tables to be written in Python >(pysqlite only lets you write custom functions) > >Not having PyPI support is pretty tough though. I'm planning a >plugin/extension system which would be ideal for things like an >optional apsw mode, but that's a lot harder if apsw isn't in PyPI. > >-- >You are receiving this because you authored the thread. >Reply to this email directly or view it on GitHub: >https://github.com/simonw/datasette/issues/144#issuecomment-346405660 | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
276091279 | |
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/146#issuecomment-346682905 | https://api.github.com/repos/simonw/datasette/issues/146 | 346682905 | MDEyOklzc3VlQ29tbWVudDM0NjY4MjkwNQ== | 9599 | 2017-11-23T18:55:08Z | 2017-11-23T18:55:08Z | OWNER | <img width="478" alt="compute_engine_-_simonwillisonblog" src="https://user-images.githubusercontent.com/9599/33186224-c3e32d44-d03c-11e7-9cd8-6acc6c1d1d01.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
276455748 | |
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 |