home / github

Menu
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

152 rows where reactions = "{"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0}"

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: created_at (date), updated_at (date)

reactions 1 ✖

  • {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} · 152 ✖
id ▼ html_url issue_url node_id user created_at updated_at author_association body reactions issue performed_via_github_app
344161226 https://github.com/simonw/datasette/issues/46#issuecomment-344161226 https://api.github.com/repos/simonw/datasette/issues/46 MDEyOklzc3VlQ29tbWVudDM0NDE2MTIyNg== simonw 9599 2017-11-14T06:41:21Z 2017-11-14T06:41:21Z OWNER Spatial extensions would be really useful too. https://www.gaia-gis.it/spatialite-2.1/SpatiaLite-manual.html {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Dockerfile should build more recent SQLite with FTS5 and spatialite support 271301468  
353424169 https://github.com/simonw/datasette/issues/175#issuecomment-353424169 https://api.github.com/repos/simonw/datasette/issues/175 MDEyOklzc3VlQ29tbWVudDM1MzQyNDE2OQ== simonw 9599 2017-12-21T18:33:55Z 2017-12-21T18:33:55Z OWNER Done - thanks for curating these: https://github.com/topics/automatic-api {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Add project topic "automatic-api" 282971961  
392602334 https://github.com/simonw/datasette/issues/97#issuecomment-392602334 https://api.github.com/repos/simonw/datasette/issues/97 MDEyOklzc3VlQ29tbWVudDM5MjYwMjMzNA== simonw 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} Link to JSON for the list of tables  274022950  
404565566 https://github.com/simonw/datasette/issues/339#issuecomment-404565566 https://api.github.com/repos/simonw/datasette/issues/339 MDEyOklzc3VlQ29tbWVudDQwNDU2NTU2Ng== simonw 9599 2018-07-12T16:08:42Z 2018-07-12T16:08:42Z OWNER I'm going to turn this into an issue about better supporting the above option. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Expose SANIC_RESPONSE_TIMEOUT config option in a sensible way 340396247  
405971920 https://github.com/simonw/datasette/issues/308#issuecomment-405971920 https://api.github.com/repos/simonw/datasette/issues/308 MDEyOklzc3VlQ29tbWVudDQwNTk3MTkyMA== simonw 9599 2018-07-18T15:27:12Z 2018-07-18T15:27:12Z OWNER It looks like there are a few extra options we should support: https://devcenter.heroku.com/articles/heroku-cli-commands ``` -t, --team=team team to use --region=region specify region for the app to run in --space=space the private space to create the app in ``` Since these differ from the options for Zeit Now I think this means splitting up `datasette publish now` and `datasette publish Heroku` into separate subcommands. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Support extra Heroku apps:create options - region, space, team 330826972  
431867885 https://github.com/simonw/datasette/issues/176#issuecomment-431867885 https://api.github.com/repos/simonw/datasette/issues/176 MDEyOklzc3VlQ29tbWVudDQzMTg2Nzg4NQ== eads 634572 2018-10-22T15:24:57Z 2018-10-22T15:24:57Z NONE I'd like this as well. It would let me access Datasette-driven projects from GatsbyJS the same way I can access Postgres DBs via Hasura. While I don't see SQLite replacing Postgres for the 50m row datasets I sometimes have to work with, there's a whole class of smaller datasets that are great with Datasette but currently would find another option. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Add GraphQL endpoint 285168503  
435974786 https://github.com/simonw/datasette/issues/370#issuecomment-435974786 https://api.github.com/repos/simonw/datasette/issues/370 MDEyOklzc3VlQ29tbWVudDQzNTk3NDc4Ng== simonw 9599 2018-11-05T18:06:56Z 2018-11-05T18:06:56Z OWNER I've been thinking a bit about ways of using Jupyter Notebook more effectively with Datasette (thinks like a `publish_dataframes(df1, df2, df3)` function which publishes some Pandas dataframes and returns you a URL to a new hosted Datasette instance) but you're right, Jupyter Lab is potentially a much more interesting fit. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Integration with JupyterLab 377155320  
439421164 https://github.com/simonw/datasette/issues/120#issuecomment-439421164 https://api.github.com/repos/simonw/datasette/issues/120 MDEyOklzc3VlQ29tbWVudDQzOTQyMTE2NA== ad-si 36796532 2018-11-16T15:05:18Z 2018-11-16T15:05:18Z NONE This would be an awesome feature ❤️ {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Plugin that adds an authentication layer of some sort 275087397  
450964512 https://github.com/simonw/datasette/issues/391#issuecomment-450964512 https://api.github.com/repos/simonw/datasette/issues/391 MDEyOklzc3VlQ29tbWVudDQ1MDk2NDUxMg== simonw 9599 2019-01-02T19:45:12Z 2019-01-02T19:45:12Z OWNER Thanks, I've fixed this. I had to re-alias it against now: ``` ~ $ now alias google-trends-pnwhfwvgqf.now.sh https://google-trends.datasettes.com/ > Assigning alias google-trends.datasettes.com to deployment google-trends-pnwhfwvgqf.now.sh > Certificate for google-trends.datasettes.com (cert_uXaADIuNooHS3tZ) created [18s] > Success! google-trends.datasettes.com now points to google-trends-pnwhfwvgqf.now.sh [20s] ``` {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Google Trends example doesn’t work 392610803  
453330680 https://github.com/simonw/datasette/issues/397#issuecomment-453330680 https://api.github.com/repos/simonw/datasette/issues/397 MDEyOklzc3VlQ29tbWVudDQ1MzMzMDY4MA== simonw 9599 2019-01-11T01:17:11Z 2019-01-11T01:25:33Z OWNER If you pull [the latest image](https://hub.docker.com/r/datasetteproject/datasette) you should get the right SQLite version now: docker pull datasetteproject/datasette docker run -p 8001:8001 \ datasetteproject/datasette \ datasette -p 8001 -h 0.0.0.0 http://0.0.0.0:8001/-/versions now gives me: ``` "version": "3.26.0" ``` {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Update official datasetteproject/datasette Docker container to SQLite 3.26.0 397129564  
467264937 https://github.com/simonw/datasette/issues/187#issuecomment-467264937 https://api.github.com/repos/simonw/datasette/issues/187 MDEyOklzc3VlQ29tbWVudDQ2NzI2NDkzNw== simonw 9599 2019-02-26T02:14:28Z 2019-02-26T02:14:28Z OWNER I'm working on a port of Datasette to Starlette which I think would fix this issue: https://github.com/encode/starlette {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Windows installation error 309033998  
473708941 https://github.com/simonw/datasette/issues/419#issuecomment-473708941 https://api.github.com/repos/simonw/datasette/issues/419 MDEyOklzc3VlQ29tbWVudDQ3MzcwODk0MQ== simonw 9599 2019-03-17T19:58:11Z 2019-03-17T19:58:11Z OWNER Some problems to solve: * Right now Datasette assumes it can always show the count of rows in a table, because this has been pre-calculated. If a database is mutable the pre-calculation trick no longer works, and for giant tables a `select count(*) from X` query can be expensive to run. Maybe we set a time limit on these? If time limit expires show "many rows"? * Maintaining a content hash of the table no longer makes sense if it is changing (though interestingly there's a `.sha3sum` built-in SQLite CLI command which takes a hash of the content and stays the same even through vacuum runs). Without that we need a different mechanism for calculating table colours. It also means that we can't do the special dbname-hash URL trick (see #418) at all if the database is opened as mutable. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Default to opening files in mutable mode, special option for immutable files 421551434  
488555399 https://github.com/simonw/datasette/issues/431#issuecomment-488555399 https://api.github.com/repos/simonw/datasette/issues/431 MDEyOklzc3VlQ29tbWVudDQ4ODU1NTM5OQ== simonw 9599 2019-05-02T05:13:54Z 2019-05-02T05:13:54Z OWNER Datasette master now treats databases as readonly but NOT immutable. This means you can make changes to those databases from another process and those changes will be instantly reflected in the Datasette interface. As such, reloading on database change is no longer necessary. Closing this ticket. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Datasette doesn't reload when database file changes 432870248  
495659567 https://github.com/simonw/datasette/issues/486#issuecomment-495659567 https://api.github.com/repos/simonw/datasette/issues/486 MDEyOklzc3VlQ29tbWVudDQ5NTY1OTU2Nw== simonw 9599 2019-05-24T14:41:45Z 2019-05-24T14:41:45Z OWNER I'm really keen to offer this as a plugin hook once I have Datasette working on ASGI - #272 I'll hopefully have that working in the next few weeks, but in the meantime there are a couple of tricks you can use: - you can add static HTML files (no templates though) using the static route configuration options - you can link to external hosted pages using the `about_url` metadata option - you can add information to an existing page with a custom template. I do that here for example: https://russian-ira-facebook-ads.datasettes.com/ {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Ability to add extra routes and related templates 448189298  
496786354 https://github.com/simonw/sqlite-utils/issues/21#issuecomment-496786354 https://api.github.com/repos/simonw/sqlite-utils/issues/21 MDEyOklzc3VlQ29tbWVudDQ5Njc4NjM1NA== simonw 9599 2019-05-29T05:09:01Z 2019-05-29T05:09:01Z OWNER Shipped this feature in sqlite-utils 1.1: https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v1-1 {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Option to ignore inserts if primary key exists already 448391492  
498839428 https://github.com/simonw/datasette/issues/498#issuecomment-498839428 https://api.github.com/repos/simonw/datasette/issues/498 MDEyOklzc3VlQ29tbWVudDQ5ODgzOTQyOA== simonw 9599 2019-06-04T20:53:21Z 2019-06-04T20:53:21Z OWNER It does not, but that's a really great idea for a feature. One challenge here is that FTS ranking calculations take overall table statistics into account, which means it's usually not possible to combine rankings from different tables in a sensible way. But that doesn't mean it's not possible to return grouped results. I think this makes a lot of sense as a plugin. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Full text search of all tables at once? 451513541  
498840129 https://github.com/simonw/datasette/issues/499#issuecomment-498840129 https://api.github.com/repos/simonw/datasette/issues/499 MDEyOklzc3VlQ29tbWVudDQ5ODg0MDEyOQ== simonw 9599 2019-06-04T20:55:30Z 2019-06-04T21:01:22Z OWNER I really want this too! It's one of the goals of the Datasette Library #417 concept, which I'm hoping to turn into an actual feature in the coming months. It's also going to be a major focus of my ten month JSK fellowship at Stanford, which starts in September. https://twitter.com/simonw/status/1123624552867565569 {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Accessibility for non-techie newsies?  451585764  
505057520 https://github.com/simonw/datasette/issues/527#issuecomment-505057520 https://api.github.com/repos/simonw/datasette/issues/527 MDEyOklzc3VlQ29tbWVudDUwNTA1NzUyMA== simonw 9599 2019-06-24T15:21:18Z 2019-06-24T15:21:18Z OWNER I just released csvs-to-sqlite 0.9.1 with this bug fix: https://github.com/simonw/csvs-to-sqlite/releases/tag/0.9.1 {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Unable to use rank when fts-table generated with csvs-to-sqlite 459936585  
505087020 https://github.com/simonw/datasette/pull/437#issuecomment-505087020 https://api.github.com/repos/simonw/datasette/issues/437 MDEyOklzc3VlQ29tbWVudDUwNTA4NzAyMA== simonw 9599 2019-06-24T16:38:56Z 2019-06-24T16:38:56Z OWNER Closing this because it doesn't really fit the new model of inspect (though we should discuss in #465 how to further evolve this feature) and because as-of #272 we no longer use Sanic - though #520 will implement the equivalent of `prepare_sanic` against ASGI. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Add inspect and prepare_sanic hooks 438048318  
509154312 https://github.com/simonw/datasette/issues/514#issuecomment-509154312 https://api.github.com/repos/simonw/datasette/issues/514 MDEyOklzc3VlQ29tbWVudDUwOTE1NDMxMg== JesperTreetop 4363711 2019-07-08T09:36:25Z 2019-07-08T09:40:33Z NONE @chrismp: Ports 1024 and under are privileged and can usually only be bound by a root or supervisor user, so it makes sense if you're running as the user `chris` that port 8000 works but 80 doesn't. See [this generic question-and-answer](https://superuser.com/questions/710253/allow-non-root-process-to-bind-to-port-80-and-443) and [this systemd question-and-answer](https://stackoverflow.com/questions/40865775/linux-systemd-service-on-port-80) for more information about ways to skin this cat. Without knowing your specific circumstances, either extending those privileges to that service/executable/user, proxying them through something like nginx or indeed looking at what the nginx systemd job has to do to listen at port 80 all sound like good ways to start. At this point, this is more generic systemd/Linux support than a Datasette issue, which is why a complete rando like me is able to contribute anything. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Documentation with recommendations on running Datasette in production without using Docker 459397625  
510550279 https://github.com/simonw/datasette/pull/556#issuecomment-510550279 https://api.github.com/repos/simonw/datasette/issues/556 MDEyOklzc3VlQ29tbWVudDUxMDU1MDI3OQ== simonw 9599 2019-07-11T16:07:27Z 2019-07-11T16:07:27Z OWNER This is a really neat trick, thanks! {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Add support for running datasette as a module 465773546  
511625212 https://github.com/simonw/datasette/pull/557#issuecomment-511625212 https://api.github.com/repos/simonw/datasette/issues/557 MDEyOklzc3VlQ29tbWVudDUxMTYyNTIxMg== simonw 9599 2019-07-16T01:12:14Z 2019-07-16T01:12:14Z OWNER This looks useful for dealing with the `The process cannot access the file because it is being used by another process` error: https://stackoverflow.com/a/28032829 {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Get tests running on Windows using Travis CI 466996584  
541931047 https://github.com/simonw/datasette/pull/595#issuecomment-541931047 https://api.github.com/repos/simonw/datasette/issues/595 MDEyOklzc3VlQ29tbWVudDU0MTkzMTA0Nw== simonw 9599 2019-10-14T21:25:38Z 2019-10-14T21:25:38Z OWNER I like the conditional dependency for the moment - maybe until 3.5 becomes officially unsupported. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} bump uvicorn to 0.9.0 to be Python-3.8 friendly 506300941  
544335363 https://github.com/dogsheep/twitter-to-sqlite/issues/20#issuecomment-544335363 https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/20 MDEyOklzc3VlQ29tbWVudDU0NDMzNTM2Mw== simonw 9599 2019-10-21T03:32:04Z 2019-10-21T03:32:04Z MEMBER In case anyone is interested, here's an extract from the crontab I'm running these under at the moment: ``` 1,11,21,31,41,51 * * * * /home/ubuntu/datasette-venv/bin/twitter-to-sqlite user-timeline /home/ubuntu/twitter.db -a /home/ubuntu/auth.json --since 2,7,12,17,22,27,32,37,42,47,52,57 * * * * /home/ubuntu/datasette-venv/bin/twitter-to-sqlite home-timeline /home/ubuntu/timeline.db -a /home/ubuntu/auth.json --since 6,16,26,36,46,56 * * * * /home/ubuntu/datasette-venv/bin/twitter-to-sqlite favorites /home/ubuntu/twitter.db -a /home/ubuntu/auth.json --stop_after=50 ``` {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} --since support for various commands for refresh-by-cron 506268945  
549435364 https://github.com/simonw/sqlite-utils/issues/62#issuecomment-549435364 https://api.github.com/repos/simonw/sqlite-utils/issues/62 MDEyOklzc3VlQ29tbWVudDU0OTQzNTM2NA== simonw 9599 2019-11-04T16:30:34Z 2019-11-04T16:30:34Z OWNER Released as 1.12. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} [enhancement] Method to delete a row in python 500783373  
549665423 https://github.com/simonw/datasette/issues/567#issuecomment-549665423 https://api.github.com/repos/simonw/datasette/issues/567 MDEyOklzc3VlQ29tbWVudDU0OTY2NTQyMw== simonw 9599 2019-11-05T05:11:14Z 2019-11-05T05:11:14Z OWNER @clausjuhl I wrote a bit about that here: https://simonwillison.net/2019/May/19/datasette-0-28/ Short version: just point Datasette at a SQLite file and update it from another process - it should work fine! I do it all the time now - I'll have a script running that writes to a database and I'll use Datasette to monitor progress. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Datasette Edit 476573875  
552275668 https://github.com/simonw/datasette/pull/595#issuecomment-552275668 https://api.github.com/repos/simonw/datasette/issues/595 MDEyOklzc3VlQ29tbWVudDU1MjI3NTY2OA== simonw 9599 2019-11-11T03:09:43Z 2019-11-11T03:09:43Z OWNER Glitch has been upgraded to Python 3.7. I think I'm happy to drop 3.5 support now - users who want Python 3.5 can get it by installing `datasette==0.30.2` {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} bump uvicorn to 0.9.0 to be Python-3.8 friendly 506300941  
561022224 https://github.com/simonw/datasette/issues/646#issuecomment-561022224 https://api.github.com/repos/simonw/datasette/issues/646 MDEyOklzc3VlQ29tbWVudDU2MTAyMjIyNA== simonw 9599 2019-12-03T06:30:42Z 2019-12-03T06:30:42Z OWNER I don't think this is possible at the moment but you're right, it totally should be. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Make database level information from metadata.json available in the index.html template 531502365  
570930239 https://github.com/simonw/sqlite-utils/issues/73#issuecomment-570930239 https://api.github.com/repos/simonw/sqlite-utils/issues/73 MDEyOklzc3VlQ29tbWVudDU3MDkzMDIzOQ== simonw 9599 2020-01-05T17:15:18Z 2020-01-05T17:15:18Z OWNER I think this is because you forgot to include a `pk=` argument. I'll change the code to throw a more useful error in this case. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} upsert_all() throws issue when upserting to empty table 545407916  
579787057 https://github.com/simonw/datasette/issues/662#issuecomment-579787057 https://api.github.com/repos/simonw/datasette/issues/662 MDEyOklzc3VlQ29tbWVudDU3OTc4NzA1Nw== simonw 9599 2020-01-29T14:43:46Z 2020-01-29T14:43:46Z OWNER Can you share the exact queries you're having trouble with? The SQL itself or even just the full URL to the page (it doesn't matter if it's to a Datasette instance that isn't available online - I just need to see the URL parameters). {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Escape_fts5_query-hookimplementation does not work with queries to standard tables 556814876  
579798917 https://github.com/simonw/datasette/issues/662#issuecomment-579798917 https://api.github.com/repos/simonw/datasette/issues/662 MDEyOklzc3VlQ29tbWVudDU3OTc5ODkxNw== clausjuhl 2181410 2020-01-29T15:08:57Z 2020-01-29T15:08:57Z NONE Hi Simon Thankt you for a quick reply. Here are a few examples of urls, where I search the 'cases_fts'-virtual table for tokens in the title-column. It returns the same results, wether the other query-params are present or not. Searching for sky http://localhost:8001/db-7596a4e/cases?_search_title=sky&year__gte=1997&year__lte=2017&_sort_desc=last_deliberation_date Returns searchresults Searching for sky* http://localhost:8001/db-7596a4e/cases?_search_title=sky*&year__gte=1997&year__lte=2017&_sort_desc=last_deliberation_date Returns searchresults Searching for sky-tog http://localhost:8001/db-7596a4e/cases?_search_title=sky-tog&year__gte=1997&year__lte=2017&_sort_desc=last_deliberation_date Throws: No such column: tog searching for sky+ http://localhost:8001/db-7596a4e/cases?_search_title=sky%2B&year__gte=1997&year__lte=2017&_sort_desc=last_deliberation_date Throws: Invalid SQL: fts5: syntax error near "" Searching for "madpakke" (including double quotes) http://localhost:8001/db-7596a4e/cases?_search_title=%22madpakke%22&year__gte=1997&year__lte=2017&_sort_desc=last_deliberation_date Returns searchresults even though 'madpakke' only appears in the fulltextindex without quotes As I said, my other plugins work just fine, and I just copied your sql_functions.py from the datasette-repo. Thanks! {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Escape_fts5_query-hookimplementation does not work with queries to standard tables 556814876  
579832857 https://github.com/simonw/datasette/issues/662#issuecomment-579832857 https://api.github.com/repos/simonw/datasette/issues/662 MDEyOklzc3VlQ29tbWVudDU3OTgzMjg1Nw== simonw 9599 2020-01-29T16:12:08Z 2020-01-29T16:12:08Z OWNER I think I see what's happening here. Adding the new plugin isn't quite enough: the change I made to master also alters the table view code to call the new function: https://github.com/simonw/datasette/commit/3c861f363df02a59a67c59036278338e4760d2ed#diff-5e0ffd62fced7d46339b9b2cd167c2f9 If you add the escape function as a plugin in Datasette 0.33 you will have to use a custom SQL query to run it, like this: https://latest.datasette.io/fixtures?sql=select+pk%2C+text1%2C+text2%2C+%5Bname+with+.+and+spaces%5D+from+searchable+where+rowid+in+%28select+rowid+from+searchable_fts+where+searchable_fts+match+escape_fts%28%3Asearch%29%29+order+by+pk+limit+101&search=Dog Or you can hold out for Datasette 0.34 which will have this fix and will hopefully ship within the next 24 hours. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Escape_fts5_query-hookimplementation does not work with queries to standard tables 556814876  
579864036 https://github.com/simonw/datasette/issues/662#issuecomment-579864036 https://api.github.com/repos/simonw/datasette/issues/662 MDEyOklzc3VlQ29tbWVudDU3OTg2NDAzNg== clausjuhl 2181410 2020-01-29T17:17:01Z 2020-01-29T17:17:01Z NONE This is excellent news. I'll wait until version 0.34. It would be tiresome to rewrite all standard-queries into custom queries. Thank you! {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Escape_fts5_query-hookimplementation does not work with queries to standard tables 556814876  
580028593 https://github.com/simonw/datasette/issues/661#issuecomment-580028593 https://api.github.com/repos/simonw/datasette/issues/661 MDEyOklzc3VlQ29tbWVudDU4MDAyODU5Mw== simonw 9599 2020-01-30T00:30:04Z 2020-01-30T00:30:04Z OWNER This has now shipped as part of Datasette 0.34: https://datasette.readthedocs.io/en/stable/changelog.html#v0-34 {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} --port option to expose a port other than 8001 in "datasette package" 555832585  
580029288 https://github.com/simonw/datasette/issues/658#issuecomment-580029288 https://api.github.com/repos/simonw/datasette/issues/658 MDEyOklzc3VlQ29tbWVudDU4MDAyOTI4OA== simonw 9599 2020-01-30T00:32:43Z 2020-01-30T00:32:43Z OWNER Can you share how your file layout is working? You should have something like this: `static/app.css` - a CSS file Then run Datasette like this: `datasette my.db --static-dir=static:static/` Then `http://127.0.0.1:8001/static/app.css` should serve your CSS. Could you share the command you're using to deploy to Heroku? {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} How do I use the app.css as style sheet? 550293770  
581758728 https://github.com/simonw/datasette/issues/577#issuecomment-581758728 https://api.github.com/repos/simonw/datasette/issues/577 MDEyOklzc3VlQ29tbWVudDU4MTc1ODcyOA== simonw 9599 2020-02-04T06:11:53Z 2020-02-04T06:11:53Z OWNER For the moment I'm going to move it to `async def render_template()` on `datasette` but otherwise keep the implementation the same. The new signature will be: async def render_template(self, template, context=None, request=None, view_name=None): `template` can be a list of strings or a single string. If a list of strings a template will be selected from them. I'll reconsider the large list of default context variables later on in a separate ticket. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Utility mechanism for plugins to render templates 497171390  
589908912 https://github.com/simonw/datasette/issues/675#issuecomment-589908912 https://api.github.com/repos/simonw/datasette/issues/675 MDEyOklzc3VlQ29tbWVudDU4OTkwODkxMg== simonw 9599 2020-02-22T02:38:21Z 2020-02-22T02:38:21Z OWNER Interesting feature suggestion. My initial instinct was that this would be better handled using the layered nature of Docker - so build a Docker image with `datasette package` and then have a separate custom script which takes that image, copies in the extra data and outputs a new image. But... `datasette package` is already meant to be more convenient than messing around with Docker by hand like this - so actually having a `--copy` option like you describe here feels like it's within scope of what `datasette package` is meant to do. So yeah - if you're happy to design this I think it would be worth us adding. Small design suggestion: allow `--copy` to be applied multiple times, so you can do something like this: datasette package \ --copy ~/project/templates /templates \ --copy ~/project/README.md /README.md \ data.db Also since Click arguments can take multiple options I don't think you need to have the `:` in there - although if it better matches Docker's own UI it might be more consistent to have it. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} --cp option for datasette publish and datasette package for shipping additional files and directories 567902704  
590517338 https://github.com/simonw/datasette/issues/682#issuecomment-590517338 https://api.github.com/repos/simonw/datasette/issues/682 MDEyOklzc3VlQ29tbWVudDU5MDUxNzMzOA== simonw 9599 2020-02-24T19:51:21Z 2020-02-24T19:51:21Z OWNER I filed a question / feature request with Janus about supporting timeouts for `.get()` against async queues here: https://github.com/aio-libs/janus/issues/240 I'm going to move ahead without needing that ability though. I figure SQLite writes are _fast_, and plugins can be trusted to implement just fast writes. So I'm going to support either fire-and-forget writes (they get added to the queue and a task ID is returned) or have the option to block awaiting the completion of the write (using Janus) but let callers decide which version they want. I may add optional timeouts some time in the future. I am going to make both `execute_write()` and `execute_write_fn()` awaitable functions though, for consistency with `.execute()` and to give me flexibility to change how they work in the future. I'll also add a `block=True` option to both of them which causes the function to wait for the write to be successfully executed - defaults to `False` (fire-and-forget mode). {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Mechanism for writing to database via a queue 569613563  
590679273 https://github.com/simonw/datasette/pull/683#issuecomment-590679273 https://api.github.com/repos/simonw/datasette/issues/683 MDEyOklzc3VlQ29tbWVudDU5MDY3OTI3Mw== simonw 9599 2020-02-25T04:37:21Z 2020-02-25T04:37:21Z OWNER I'm happy with this now. I'm going to merge to master. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} .execute_write() and .execute_write_fn() methods on Database 570101428  
592399256 https://github.com/simonw/datasette/issues/675#issuecomment-592399256 https://api.github.com/repos/simonw/datasette/issues/675 MDEyOklzc3VlQ29tbWVudDU5MjM5OTI1Ng== simonw 9599 2020-02-28T08:09:12Z 2020-02-28T08:09:12Z OWNER Sure, `--cp` looks good to me. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} --cp option for datasette publish and datasette package for shipping additional files and directories 567902704  
602907207 https://github.com/simonw/datasette/issues/394#issuecomment-602907207 https://api.github.com/repos/simonw/datasette/issues/394 MDEyOklzc3VlQ29tbWVudDYwMjkwNzIwNw== wragge 127565 2020-03-23T23:12:18Z 2020-03-23T23:12:18Z CONTRIBUTOR This would also be useful for running Datasette in Jupyter notebooks on [Binder](https://mybinder.org/). While you can use [Jupyter-server-proxy](https://github.com/jupyterhub/jupyter-server-proxy) to access Datasette on Binder, the links are broken. Why run Datasette on Binder? I'm developing a [range of Jupyter notebooks](https://glam-workbench.github.io/) that are aimed at getting humanities researchers to explore data from libraries, archives, and museums. Many of them are aimed at researchers with limited digital skills, so being able to run examples in Binder without them installing anything is fantastic. For example, there are a [series of notebooks](https://glam-workbench.github.io/trove-harvester/) that help researchers harvest digitised historical newspaper articles from Trove. The metadata from this harvest is saved as a CSV file that users can download. I've also provided some extra notebooks that use Pandas etc to demonstrate ways of analysing and visualising the harvested data. But it would be really nice if, after completing a harvest, the user could spin up Datasette for some initial exploration of their harvested data without ever leaving their browser. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} base_url configuration setting 396212021  
603631640 https://github.com/simonw/datasette/issues/394#issuecomment-603631640 https://api.github.com/repos/simonw/datasette/issues/394 MDEyOklzc3VlQ29tbWVudDYwMzYzMTY0MA== simonw 9599 2020-03-25T04:19:08Z 2020-03-25T04:19:08Z OWNER Shipped in 0.39: https://datasette.readthedocs.io/en/latest/changelog.html#v0-39 {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} base_url configuration setting 396212021  
610076073 https://github.com/simonw/datasette/issues/717#issuecomment-610076073 https://api.github.com/repos/simonw/datasette/issues/717 MDEyOklzc3VlQ29tbWVudDYxMDA3NjA3Mw== simonw 9599 2020-04-06T22:47:21Z 2020-04-06T22:47:21Z OWNER I'm confident it's possible to create a plugin that deploys to Now v2 now. I'll do the rest of the work in a separate repo: https://github.com/simonw/datasette-publish-now {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} See if I can get Datasette working on Zeit Now v2 594189527  
617208503 https://github.com/simonw/datasette/issues/176#issuecomment-617208503 https://api.github.com/repos/simonw/datasette/issues/176 MDEyOklzc3VlQ29tbWVudDYxNzIwODUwMw== nkirsch 12976 2020-04-21T14:16:24Z 2020-04-21T14:16:24Z NONE @eads I'm interested in helping, if there's still a need... {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Add GraphQL endpoint 285168503  
618155472 https://github.com/simonw/datasette/issues/731#issuecomment-618155472 https://api.github.com/repos/simonw/datasette/issues/731 MDEyOklzc3VlQ29tbWVudDYxODE1NTQ3Mg== simonw 9599 2020-04-23T03:28:42Z 2020-04-23T03:28:56Z OWNER As an alternative to `--static` this could work by letting you create the following: - `static/css/` - `static/js/` Which would be automatically mounted at `/js/...` and `/css/...` Or maybe just mount `static/` at `/static/` instead? {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Option to automatically configure based on directory layout 605110015  
622279374 https://github.com/dogsheep/github-to-sqlite/issues/33#issuecomment-622279374 https://api.github.com/repos/dogsheep/github-to-sqlite/issues/33 MDEyOklzc3VlQ29tbWVudDYyMjI3OTM3NA== garethr 2029 2020-05-01T07:12:47Z 2020-05-01T07:12:47Z NONE I also go it working with: ```yaml run: echo ${{ secrets.github_token }} | github-to-sqlite auth ``` {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Fall back to authentication via ENV 609950090  
623807568 https://github.com/dogsheep/dogsheep-photos/issues/16#issuecomment-623807568 https://api.github.com/repos/dogsheep/dogsheep-photos/issues/16 MDEyOklzc3VlQ29tbWVudDYyMzgwNzU2OA== simonw 9599 2020-05-05T02:56:06Z 2020-05-05T02:56:06Z MEMBER I'm pretty sure this is what I'm after. The `groups` table has what looks like identified labels in the rows with category = 2025: <img width="1122" alt="words__groups__2_528_rows_where_where_category___2025" src="https://user-images.githubusercontent.com/9599/81031361-e0df4080-8e40-11ea-9060-6d850aa52140.png"> Then there's a `ga` table that maps groups to assets: <img width="304" alt="words__ga__633_653_rows" src="https://user-images.githubusercontent.com/9599/81031387-f48aa700-8e40-11ea-9a3d-da23903be928.png"> And an `assets` table which looks like it has one row for every one of my photos: <img width="645" alt="words__assets__40_419_rows" src="https://user-images.githubusercontent.com/9599/81031402-04a28680-8e41-11ea-8047-e9199d068563.png"> One major challenge: these UUIDs are split into two integer numbers, `uuid_0` and `uuid_1` - but the main photos database uses regular UUIDs like this: ![image](https://user-images.githubusercontent.com/9599/81031481-39164280-8e41-11ea-983b-005ced641a18.png) I need to figure out how to match up these two different UUID representations. I asked on Twitter if anyone has any ideas: https://twitter.com/simonw/status/1257500689019703296 {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Import machine-learning detected labels (dog, llama etc) from Apple Photos 612287234  
624797119 https://github.com/simonw/datasette/issues/758#issuecomment-624797119 https://api.github.com/repos/simonw/datasette/issues/758 MDEyOklzc3VlQ29tbWVudDYyNDc5NzExOQ== simonw 9599 2020-05-06T17:53:46Z 2020-05-06T17:53:46Z OWNER It's interesting to hear from someone who's using this feature - I'm considering moving it out into a plugin #647. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Question: Access to immutable database-path 612382643  
624821090 https://github.com/simonw/datasette/issues/757#issuecomment-624821090 https://api.github.com/repos/simonw/datasette/issues/757 MDEyOklzc3VlQ29tbWVudDYyNDgyMTA5MA== simonw 9599 2020-05-06T18:41:29Z 2020-05-06T18:41:29Z OWNER OK, I just released 0.41 with that and a bunch of other stuff: https://datasette.readthedocs.io/en/latest/changelog.html#v0-41 {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Question: Any fixed date for the release with the uft8-encoding fix? 612378203  
626395209 https://github.com/dogsheep/dogsheep-photos/issues/21#issuecomment-626395209 https://api.github.com/repos/dogsheep/dogsheep-photos/issues/21 MDEyOklzc3VlQ29tbWVudDYyNjM5NTIwOQ== simonw 9599 2020-05-10T21:52:42Z 2020-05-10T21:52:42Z MEMBER Aha! It looks like I accidentally installed the old bplist into the same environment: ``` $ pip freeze | grep bpylist bpylist==0.1.4 bpylist2==3.0.0 ``` {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} bpylist.archiver.CircularReference: archive has a cycle with uid(13) 615474990  
626395781 https://github.com/dogsheep/dogsheep-photos/issues/21#issuecomment-626395781 https://api.github.com/repos/dogsheep/dogsheep-photos/issues/21 MDEyOklzc3VlQ29tbWVudDYyNjM5NTc4MQ== simonw 9599 2020-05-10T21:57:09Z 2020-05-10T21:57:09Z MEMBER Yes, I just recreated my virtual environment from scratch and the error went away. The problem occurred when I ran `pip install datasette-bplist` in the same virtual environment - https://github.com/simonw/datasette-bplist/blob/master/setup.py depends on `bpylist` which is incompatible with `bpylist2`. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} bpylist.archiver.CircularReference: archive has a cycle with uid(13) 615474990  
650600606 https://github.com/simonw/datasette/pull/868#issuecomment-650600606 https://api.github.com/repos/simonw/datasette/issues/868 MDEyOklzc3VlQ29tbWVudDY1MDYwMDYwNg== simonw 9599 2020-06-27T18:44:28Z 2020-06-27T18:44:28Z OWNER This is really exciting! Thanks so much for looking into this. I'm interested in moving CI for this repo over to GitHub Actions, so I'd be fine with you getting this to work as an Action rather than through Travis. If you can get it working in Travis though I'll happily land that and figure out how to convert that to GitHub Actions later on. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} initial windows ci setup 646448486  
652520496 https://github.com/simonw/datasette/issues/877#issuecomment-652520496 https://api.github.com/repos/simonw/datasette/issues/877 MDEyOklzc3VlQ29tbWVudDY1MjUyMDQ5Ng== simonw 9599 2020-07-01T16:26:52Z 2020-07-01T16:26:52Z OWNER Tokens get verified by plugins. So far there's only one: https://github.com/simonw/datasette-auth-tokens - which has you hard-coding plugins in a configuration file. I have a issue there to add support for database-backed tokens too: https://github.com/simonw/datasette-auth-tokens/issues/1 {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Consider dropping explicit CSRF protection entirely? 648421105  
655652679 https://github.com/simonw/sqlite-utils/issues/121#issuecomment-655652679 https://api.github.com/repos/simonw/sqlite-utils/issues/121 MDEyOklzc3VlQ29tbWVudDY1NTY1MjY3OQ== tsibley 79913 2020-07-08T17:24:46Z 2020-07-08T17:24:46Z CONTRIBUTOR Better transaction handling would be really great. Some of my thoughts on implementing better transaction discipline are in https://github.com/simonw/sqlite-utils/pull/118#issuecomment-655239728. My preferences: - Each CLI command should operate in a single transaction so that either the whole thing succeeds or the whole thing is rolled back. This avoids partially completed operations when an error occurs part way through processing. Partially completed operations are typically much harder to recovery from gracefully and may cause inconsistent data states. - The Python API should be transaction-agnostic and rely on the caller to coordinate transactions. Only the caller knows how individual insert, create, update, etc operations/methods should be bundled conceptually into transactions. When the caller is the CLI, for example, that bundling would be at the CLI command-level. Other callers might want to break up operations into multiple transactions. Transactions are usually most useful when controlled at the application-level (like logging configuration) instead of the library level. The library needs to provide an API that's conducive to transaction use, though. - The Python API should provide a context manager to provide consistent transactions handling with more useful defaults than Python's `sqlite3` module. The latter issues implicit `BEGIN` statements by default for most DML (`INSERT`, `UPDATE`, `DELETE`, … but not `SELECT`, I believe), but **not** DDL (`CREATE TABLE`, `DROP TABLE`, `CREATE VIEW`, …). Notably, the `sqlite3` module doesn't issue the implicit `BEGIN` until the first DML statement. It _does not_ issue it when entering the `with conn` block, like other DBAPI2-compatible modules do. The `with conn` block for `sqlite3` only arranges to commit or rollback an existing transaction when exiting. Including DDL and `SELECT`s in transactions is important for operation consistency, though. There are several existing bugs.python.org tickets about this and future changes are in the works, but sql… {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Improved (and better documented) support for transactions 652961907  
655673896 https://github.com/simonw/sqlite-utils/issues/121#issuecomment-655673896 https://api.github.com/repos/simonw/sqlite-utils/issues/121 MDEyOklzc3VlQ29tbWVudDY1NTY3Mzg5Ng== simonw 9599 2020-07-08T18:08:11Z 2020-07-08T18:08:11Z OWNER I'm with you on most of this. Completely agreed that the CLI should do everything in a transaction. The one thing I'm not keen on is forcing calling code to explicitly start a transaction, for a couple of reasons: 1. It will break all of the existing code out there 2. It doesn't match to how I most commonly use this library - as an interactive tool in a Jupyter notebook, where I'm generally working against a brand new scratch database and any errors don't actually matter So... how about this: IF you wrap your code in a `with db:` block then the `.insert()` and suchlike methods expect you to manage transactions yourself. But if you don't use the context manager they behave like they do at the moment (or maybe a bit more sensibly). That way existing code works as it does today, lazy people like me can call `.insert()` without thinking about transactions, but people writing actual production code (as opposed to Jupyter hacks) have a sensible way to take control of the transactions themselves. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Improved (and better documented) support for transactions 652961907  
675718593 https://github.com/simonw/datasette/issues/942#issuecomment-675718593 https://api.github.com/repos/simonw/datasette/issues/942 MDEyOklzc3VlQ29tbWVudDY3NTcxODU5Mw== simonw 9599 2020-08-18T21:02:11Z 2020-08-18T21:02:24Z OWNER Easiest solution: if you provide column metadata it gets displayed above the table, something like on https://fivethirtyeight.datasettes.com/fivethirtyeight/antiquities-act%2Factions_under_antiquities_act <img width="500" alt="fivethirtyeight__antiquities-act_actions_under_antiquities_act__344_rows" src="https://user-images.githubusercontent.com/9599/90565187-57d3e700-e15b-11ea-89c8-0270e3040a50.png"> HTML `title=` tooltips are also added to the table headers, which won't be visible on touch devices but that's OK because the information is visible on the page already. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Support column descriptions in metadata.json 681334912  
683173375 https://github.com/simonw/sqlite-utils/pull/142#issuecomment-683173375 https://api.github.com/repos/simonw/sqlite-utils/issues/142 MDEyOklzc3VlQ29tbWVudDY4MzE3MzM3NQ== simonw 9599 2020-08-28T22:29:02Z 2020-08-28T22:29:02Z OWNER Yeah I think that failure is actually because there's a brand new release of Black out and it subtly changes some of the formatting rules. I'll merge this and then run Black against the entire codebase. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} insert_all(..., alter=True) should work for new columns introduced after the first 100 records 688386219  
691501132 https://github.com/dogsheep/twitter-to-sqlite/issues/50#issuecomment-691501132 https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/50 MDEyOklzc3VlQ29tbWVudDY5MTUwMTEzMg== bcongdon 706257 2020-09-12T14:48:10Z 2020-09-12T14:48:10Z NONE This seems to be an issue even with larger values of `--stop_after`: ``` $ twitter-to-sqlite favorites twitter.db --stop_after=2000 Importing favorites [####################################] 198 $ ``` {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} favorites --stop_after=N stops after min(N, 200) 698791218  
693199049 https://github.com/simonw/sqlite-utils/issues/159#issuecomment-693199049 https://api.github.com/repos/simonw/sqlite-utils/issues/159 MDEyOklzc3VlQ29tbWVudDY5MzE5OTA0OQ== simonw 9599 2020-09-16T06:20:26Z 2020-09-16T06:20:26Z OWNER See #121 - I need to think harder about how this all interacts with transactions. You can do this: ```python with db.conn: db["mytable"].delete_where() ``` But that should be documented and maybe rethought. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} .delete_where() does not auto-commit (unlike .insert() or .upsert()) 702386948  
695896557 https://github.com/simonw/datasette/issues/970#issuecomment-695896557 https://api.github.com/repos/simonw/datasette/issues/970 MDEyOklzc3VlQ29tbWVudDY5NTg5NjU1Nw== simonw 9599 2020-09-21T04:40:12Z 2020-09-21T04:40:12Z OWNER The Python standard library has a module for this: https://docs.python.org/3/library/webbrowser.html {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} request an "-o" option on "datasette server" to open the default browser at the running url 705108492  
696163452 https://github.com/simonw/datasette/issues/670#issuecomment-696163452 https://api.github.com/repos/simonw/datasette/issues/670 MDEyOklzc3VlQ29tbWVudDY5NjE2MzQ1Mg== snth 652285 2020-09-21T14:46:10Z 2020-09-21T14:46:10Z NONE I'm currently using PostgREST to serve OpenAPI APIs off Postgresql databases. I would like to try out datasette once this becomes available on Postgres. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Prototoype for Datasette on PostgreSQL 564833696  
697973420 https://github.com/simonw/datasette/issues/619#issuecomment-697973420 https://api.github.com/repos/simonw/datasette/issues/619 MDEyOklzc3VlQ29tbWVudDY5Nzk3MzQyMA== obra 45416 2020-09-23T21:07:58Z 2020-09-23T21:07:58Z NONE I've just run into this after crafting a complex query and discovered that hitting back loses my query. Even showing me the whole bad query would be a huge improvement over the current status quo. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} "Invalid SQL" page should let you edit the SQL 520655983  
701627158 https://github.com/simonw/sqlite-utils/pull/178#issuecomment-701627158 https://api.github.com/repos/simonw/sqlite-utils/issues/178 MDEyOklzc3VlQ29tbWVudDcwMTYyNzE1OA== simonw 9599 2020-09-30T20:29:11Z 2020-09-30T20:29:11Z OWNER Thanks for the fix! {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Update README.md 709043182  
702265255 https://github.com/simonw/datasette/pull/986#issuecomment-702265255 https://api.github.com/repos/simonw/datasette/issues/986 MDEyOklzc3VlQ29tbWVudDcwMjI2NTI1NQ== simonw 9599 2020-10-01T16:51:45Z 2020-10-01T16:51:45Z OWNER Thanks for taking a look! The fix ended up being a little different from this because I still want to disable faceting on regular single primary keys (since faceting by those won't ever produce interesting results) - here's what I used: https://github.com/simonw/datasette/commit/5d6bc4c268f9f155e59561671f8617addd3e91bc {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Allow facet by primary keys, fixes #985 712889459  
712317638 https://github.com/simonw/datasette/issues/991#issuecomment-712317638 https://api.github.com/repos/simonw/datasette/issues/991 MDEyOklzc3VlQ29tbWVudDcxMjMxNzYzOA== simonw 9599 2020-10-19T17:30:56Z 2020-10-19T17:30:56Z OWNER https://biglocal.datasettes.com/ is one of my larger Datasettes in terms of number of databases. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Redesign application homepage 714377268  
715584579 https://github.com/simonw/datasette/pull/1044#issuecomment-715584579 https://api.github.com/repos/simonw/datasette/issues/1044 MDEyOklzc3VlQ29tbWVudDcxNTU4NDU3OQ== simonw 9599 2020-10-23T20:53:01Z 2020-10-23T20:53:01Z OWNER Thanks for this! {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Add minimum supported python 727916744  
715585140 https://github.com/simonw/datasette/pull/1043#issuecomment-715585140 https://api.github.com/repos/simonw/datasette/issues/1043 MDEyOklzc3VlQ29tbWVudDcxNTU4NTE0MA== simonw 9599 2020-10-23T20:54:29Z 2020-10-23T20:54:29Z OWNER Thanks. I'll push a source release of `asgi-csrf`. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Include LICENSE in sdist 727915394  
716048564 https://github.com/simonw/datasette/issues/1033#issuecomment-716048564 https://api.github.com/repos/simonw/datasette/issues/1033 MDEyOklzc3VlQ29tbWVudDcxNjA0ODU2NA== simonw 9599 2020-10-24T20:08:31Z 2020-10-24T20:08:31Z OWNER Documentation here: https://docs.datasette.io/en/latest/internals.html#datasette-urls {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} datasette.urls.static_plugins(...) method 725099777  
717359145 https://github.com/simonw/sqlite-utils/pull/189#issuecomment-717359145 https://api.github.com/repos/simonw/sqlite-utils/issues/189 MDEyOklzc3VlQ29tbWVudDcxNzM1OTE0NQ== adamwolf 35681 2020-10-27T16:20:32Z 2020-10-27T16:20:32Z CONTRIBUTOR No problem. I added a test. Let me know if it looks sufficient or if you want me to to tweak something! If you don't mind, would you tag this PR as "hacktoberfest-accepted"? If you do mind, no problem and I'm sorry for asking :) My kiddos like the shirts. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Allow iterables other than Lists in m2m records 729818242  
718342036 https://github.com/simonw/datasette/issues/1050#issuecomment-718342036 https://api.github.com/repos/simonw/datasette/issues/1050 MDEyOklzc3VlQ29tbWVudDcxODM0MjAzNg== simonw 9599 2020-10-29T03:49:57Z 2020-10-29T03:49:57Z OWNER @thadk from that error it looks like the problem may have been that you had a BLOB column containing a `null` value? If so that's definitely a bug, I'll fix that. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Switch to .blob render extension for BLOB downloads 729057388  
726412057 https://github.com/simonw/datasette/issues/865#issuecomment-726412057 https://api.github.com/repos/simonw/datasette/issues/865 MDEyOklzc3VlQ29tbWVudDcyNjQxMjA1Nw== simonw 9599 2020-11-12T23:49:23Z 2020-11-12T23:49:23Z OWNER @tballison thanks, I've split that out into a new issue #1091 {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} base_url doesn't seem to work when adding criteria and clicking "apply" 644582921  
735443626 https://github.com/simonw/datasette/issues/1114#issuecomment-735443626 https://api.github.com/repos/simonw/datasette/issues/1114 MDEyOklzc3VlQ29tbWVudDczNTQ0MzYyNg== simonw 9599 2020-11-29T19:40:49Z 2020-11-29T19:40:49Z OWNER Fix is out in 0.52.1: https://docs.datasette.io/en/latest/changelog.html#v0-52-1 {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} --load-extension=spatialite not working with datasetteproject/datasette docker image 752966476  
737463116 https://github.com/simonw/datasette/issues/942#issuecomment-737463116 https://api.github.com/repos/simonw/datasette/issues/942 MDEyOklzc3VlQ29tbWVudDczNzQ2MzExNg== simonw 9599 2020-12-02T20:02:10Z 2020-12-02T20:03:01Z OWNER My idea is that if you installed my proposed plugin you wouldn't need `metadata.json` at all - your metadata would instead live in a table in the connected SQLite database files - either one table per database (so the metadata can live in the same place as the data) or maybe also in a dedicated separate database file, for if you want to add metadata to an otherwise read-only database. The plugin would then provide a UI for editing that metadata - maybe by configuring some writable canned queries or maybe something more custom than that. Or you could edit the metadata by manually editing the SQLite database file (or loading data into it using a tool like [yaml-to-sqlite](https://github.com/simonw/yaml-to-sqlite)). {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Support column descriptions in metadata.json 681334912  
737563699 https://github.com/simonw/datasette/issues/749#issuecomment-737563699 https://api.github.com/repos/simonw/datasette/issues/749 MDEyOklzc3VlQ29tbWVudDczNzU2MzY5OQ== simonw 9599 2020-12-02T23:45:42Z 2020-12-02T23:45:42Z OWNER I asked about this on Twitter - https://twitter.com/steren/status/1334281184965140483 > You simply need to send the `Transfer-Encoding: chunked` header. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Cloud Run fails to serve database files larger than 32MB 610829227  
738904347 https://github.com/simonw/datasette/issues/111#issuecomment-738904347 https://api.github.com/repos/simonw/datasette/issues/111 MDEyOklzc3VlQ29tbWVudDczODkwNDM0Nw== simonw 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} Add “updated” to metadata 274615452  
739355855 https://github.com/simonw/datasette/pull/1128#issuecomment-739355855 https://api.github.com/repos/simonw/datasette/issues/1128 MDEyOklzc3VlQ29tbWVudDczOTM1NTg1NQ== simonw 9599 2020-12-05T19:34:57Z 2020-12-05T19:34:57Z OWNER Thanks for this! {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Fix startup error on windows 756867924  
741665253 https://github.com/simonw/datasette/issues/766#issuecomment-741665253 https://api.github.com/repos/simonw/datasette/issues/766 MDEyOklzc3VlQ29tbWVudDc0MTY2NTI1Mw== clausjuhl 2181410 2020-12-09T09:59:05Z 2020-12-09T09:59:05Z NONE Hi Simon. Any news on using wildcard-searches with datasette? Thanks! {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Enable wildcard-searches by default 617323873  
743998792 https://github.com/simonw/datasette/issues/1142#issuecomment-743998792 https://api.github.com/repos/simonw/datasette/issues/1142 MDEyOklzc3VlQ29tbWVudDc0Mzk5ODc5Mg== nitinpaultifr 6622733 2020-12-13T12:14:06Z 2020-12-13T12:14:06Z NONE Agreed, it would definitely provide better controls. However, I do feel it makes for a bit of inconsistent UX for the 'Advanced export' section, with links to download for JSON, checkboxes and radio buttons + button to download for CSV. Do you think this example makes the UX a bit nicer/consistent? ![Screenshot 2020-12-13 at 5 38 43 PM](https://user-images.githubusercontent.com/6622733/102011444-1dc1cd00-3d6a-11eb-9e38-5af198161e80.png) I could give it a try if you'd like but I've never contributed to an actual project! {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} "Stream all rows" is not at all obvious 763361458  
744461856 https://github.com/simonw/datasette/issues/276#issuecomment-744461856 https://api.github.com/repos/simonw/datasette/issues/276 MDEyOklzc3VlQ29tbWVudDc0NDQ2MTg1Ng== robintw 296686 2020-12-14T14:04:57Z 2020-12-14T14:04:57Z NONE I'm looking into using datasette with a database with spatialite geometry columns, and came across this issue. Has there been any progress on this since 2018? In one of my tables I'm just storing lat/lon points in a spatialite point geometry, and I've managed to make datasette-cluster-map display the points by extracting the lat and lon in SQL - using something like `select ... ST_X(location) as longitude, ST_Y(location) as latitude from Blah`. Something more 'built-in' would be great though - particularly for the tables I have that store more complex geometries. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Handle spatialite geometry columns better 324835838  
744489028 https://github.com/simonw/datasette/issues/1144#issuecomment-744489028 https://api.github.com/repos/simonw/datasette/issues/1144 MDEyOklzc3VlQ29tbWVudDc0NDQ4OTAyOA== MarkusH 475613 2020-12-14T14:47:11Z 2020-12-14T14:47:11Z NONE Thanks for opening the issue, @simonw. Let me elaborate on my Tweets. [datasette-chartjs](https://github.com/MarkusH/datasette-chartjs) provides drop down lists to pick the chart visualization (e.g. bar, line, doughnut, pie, ...) as well as the column used for the "x axis" (e.g. time). A user can change the values on-demand. The chart will be redrawn w/o querying the database again. However, if a user wants to change the underlying query, they will use the SQL field provided by datasette or any of the other datasette built-in features to amend a query. In order to maintain a user's selections for the plugin, datasette-chartjs copies some parts of [datasette-vega](https://github.com/simonw/datasette-vega) which persist the chosen visualization and column in the hash part of a URL (the stuff behind the `#`). The plugin load the config from the hash upon initialization on the next page and use it accordingly. Additionally, datasette-vega and datasette-chartjs need to make sure to include the hash in all links and forms that cause a reload of the page. This is, such that the config persists between clicks. This ticket is about moving thes parts into datasette that provide the functionality to do so. This includes: 1. a way to load config options with a given prefix from the current URL hash 1. a way to update the current URL hash with a new config value or a bunch of config options 1. updating all necessary links and forms on the current page to include the URL hash whenever its updated 1. to prevent leaking config options to external pages, only "internal" links should be updated There's another, optional, feature that we might want to think about during the design phase: the scope of the config. Links within a datasette instance have 1 of 3 scopes: 1. global, for the whole datasette project 1. database, for all tables in a database 1. table, only for a table within a database When updating the links and forms as pointed out in 3. above, it might be worth considering which links need … {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} JavaScript to help plugins interact with the fragment part of the URL 765637324  
744522099 https://github.com/simonw/datasette/issues/1142#issuecomment-744522099 https://api.github.com/repos/simonw/datasette/issues/1142 MDEyOklzc3VlQ29tbWVudDc0NDUyMjA5OQ== nitinpaultifr 6622733 2020-12-14T15:37:47Z 2020-12-14T15:37:47Z NONE Alright I could give it a try! This might be a stupid question, can you tell me how to run the server from my fork? So that I can test the changes? {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} "Stream all rows" is not at all obvious 763361458  
744563209 https://github.com/simonw/datasette/issues/1142#issuecomment-744563209 https://api.github.com/repos/simonw/datasette/issues/1142 MDEyOklzc3VlQ29tbWVudDc0NDU2MzIwOQ== simonw 9599 2020-12-14T16:41:11Z 2020-12-14T16:41:11Z OWNER To check out and start the server: /tmp % git clone git@github.com:nitinpaul/datasette Cloning into 'datasette'... remote: Enumerating objects: 124, done. # ... datasette % python3 -m venv venv datasette % source venv/bin/activate (venv) datasette % pip install -e '.[test]' Obtaining file:///private/tmp/datasette Collecting asgiref<3.4.0,>=3.2.10 Using cached asgiref-3.3.1-py3-none-any.whl (19 kB) # ... (venv) datasette % datasette INFO: Started server process [24002] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:8001 (Press CTRL+C to quit) And to run the tests: (venv) datasette % pytest ======================================================================== test session starts ======================================================================== platform darwin -- Python 3.9.1, pytest-6.1.2, py-1.10.0, pluggy-0.13.1 SQLite: 3.34.0 rootdir: /private/tmp/datasette, configfile: pytest.ini plugins: asyncio-0.14.0, timeout-1.4.2 collected 841 items tests/test_package.py .. [ 0%] {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} "Stream all rows" is not at all obvious 763361458  
747062909 https://github.com/simonw/datasette/issues/1148#issuecomment-747062909 https://api.github.com/repos/simonw/datasette/issues/1148 MDEyOklzc3VlQ29tbWVudDc0NzA2MjkwOQ== simonw 9599 2020-12-16T21:51:54Z 2020-12-16T21:51:54Z OWNER This is a really frustrating bug with Vercel: https://github.com/simonw/datasette-publish-vercel/issues/28 `+` characters in URLs get translated into spaces before they get to Datasette. They know about the bug and said they were working on a fix a few months ago, but looks like it's still a problem. A workaround is to avoid `+` and use `-` instead - I think this SQL query does the same thing as yours: https://aws-partners-singapore.vercel.app/partners?sql=select%0D%0A++A.launch_rank%2C%0D%0A++A.partner_info%0D%0Afrom%0D%0A++summary+A%0D%0A++INNER+JOIN+summary+B+ON+A.launch_rank+%3E%3D+B.launch_rank+-+3%0D%0A++AND+A.launch_rank+-4+%3C%3D+B.launch_rank%0D%0AWHERE%0D%0A++B.%22partner_info%22+LIKE+%27%25Palo+Alto%25%27 ```sql select A.launch_rank, A.partner_info from summary A INNER JOIN summary B ON A.launch_rank >= B.launch_rank - 3 AND A.launch_rank -4 <= B.launch_rank WHERE B."partner_info" LIKE '%Palo Alto%' ``` I've been moving projects from Vercel to Cloud Run when they run into this, but that's not a great situation to be in. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Syntax error with + symbol when deployed to Vercel 767561886  
747207787 https://github.com/simonw/datasette/issues/1149#issuecomment-747207787 https://api.github.com/repos/simonw/datasette/issues/1149 MDEyOklzc3VlQ29tbWVudDc0NzIwNzc4Nw== simonw 9599 2020-12-17T05:06:16Z 2020-12-17T05:06:16Z OWNER So, an idea: what if Datasette's default CSS applied only to elements with classes - or maybe to childen of a `body class="datasette"` element? In such a way that you could write your own custom HTML that reused elements of Datasette's CSS - the cog menu styling for example - but only on an opt-in basis? {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Make it easier to theme Datasette with CSS 769520939  
750390741 https://github.com/simonw/datasette/pull/1158#issuecomment-750390741 https://api.github.com/repos/simonw/datasette/issues/1158 MDEyOklzc3VlQ29tbWVudDc1MDM5MDc0MQ== simonw 9599 2020-12-23T17:05:32Z 2020-12-23T17:05:32Z OWNER Thanks for this! I'm fine keeping the `os.path` stuff as is. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Modernize code to Python 3.6+ 773913793  
752714747 https://github.com/simonw/datasette/issues/987#issuecomment-752714747 https://api.github.com/repos/simonw/datasette/issues/987 MDEyOklzc3VlQ29tbWVudDc1MjcxNDc0Nw== simonw 9599 2020-12-30T18:23:08Z 2020-12-30T18:23:20Z OWNER In terms of "places to put your plugin content", the simplest solution I can think of is something like this: ```html <div id="plugin-content-pre-table"></div> ``` Alternative designs: - A documented JavaScript function that returns the CSS selector where plugins should put their content - A documented JavaScript function that returns a DOM node where plugins should put their content. This would allow the JavaScript to create the element if it does not already exist (though it wouldn't be obvious WHERE that element should be created) - Documented JavaScript functions for things like "append this node/HTML to the place-where-plugins-go" I think the original option - an empty `<div>` with a known `id` attribute - is the right one to go with here. It's the simplest, it's very easy for custom template authors to understand and it acknowledges that plugins may have all kinds of extra crazy stuff they want to do - like checking in that div to see if another plugin has written to it already, for example. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Documented HTML hooks for JavaScript plugin authors 712984738  
753653260 https://github.com/simonw/datasette/issues/1169#issuecomment-753653260 https://api.github.com/repos/simonw/datasette/issues/1169 MDEyOklzc3VlQ29tbWVudDc1MzY1MzI2MA== simonw 9599 2021-01-03T17:54:40Z 2021-01-03T17:54:40Z OWNER And @benpickles yes I would land that pull request straight away as-is. Thanks! {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Prettier package not actually being cached 777677671  
754187326 https://github.com/simonw/datasette/issues/913#issuecomment-754187326 https://api.github.com/repos/simonw/datasette/issues/913 MDEyOklzc3VlQ29tbWVudDc1NDE4NzMyNg== simonw 9599 2021-01-04T20:03:50Z 2021-01-04T20:03:50Z OWNER I renamed `--config` to `--setting` and changed it to work like this: datasette --setting sql_time_limit_ms 1000 Note the lack of colons. This actually makes colons cleaner to use for plugins - I could support this: datasette --setting datasette-insert:unsafe 1 {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Mechanism for passing additional options to `datasette my.db` that affect plugins 670209331  
754215392 https://github.com/simonw/datasette/issues/93#issuecomment-754215392 https://api.github.com/repos/simonw/datasette/issues/93 MDEyOklzc3VlQ29tbWVudDc1NDIxNTM5Mg== simonw 9599 2021-01-04T20:59:20Z 2021-01-04T21:03:14Z OWNER Updated `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} Package as standalone binary 273944952  
761015218 https://github.com/simonw/sqlite-utils/issues/220#issuecomment-761015218 https://api.github.com/repos/simonw/sqlite-utils/issues/220 MDEyOklzc3VlQ29tbWVudDc2MTAxNTIxOA== mhalle 649467 2021-01-15T15:40:08Z 2021-01-15T15:40:08Z NONE Make sense. If you're coming from the sqlite3 side of things, rather than the datasette side, wanting the fts methods to work for views makes more sense. sqlite3 allows fts5 tables on views, so I was looking for CLI functionality to build the fts virtual tables. Ultimately, though, sharing fts virtual tables across tables and derivative views is likely more efficient. Maybe an explicit error message like, "fts is not supported for views" rather than just throwing an exception that the method doesn't exist" might be helpful. Not critical though. Thanks. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Better error message for *_fts methods against views 783778672  
769455370 https://github.com/simonw/datasette/issues/1209#issuecomment-769455370 https://api.github.com/repos/simonw/datasette/issues/1209 MDEyOklzc3VlQ29tbWVudDc2OTQ1NTM3MA== simonw 9599 2021-01-28T23:00:21Z 2021-01-28T23:00:21Z OWNER Good catch on the workaround here. The root problem is that `datasette-template-sql` looks for the first available databsae if you don't provide it with a `database=` argument, and in Datasette 0.54 the first available database changed to being the new `_internal` database. Is this a bug? I think it is - because the documented behaviour on https://docs.datasette.io/en/stable/internals.html#get-database-name is this: > `name` - string, optional > > The name to be used for this database - this will be used in the URL path, e.g. `/dbname`. If not specified Datasette will pick one based on the filename or memory name. Since the new behaviour differs from what was in the documentation I'm going to treat this as a bug and fix it. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} v0.54 500 error from sql query in custom template; code worked in v0.53; found a workaround 795367402  
770071568 https://github.com/dogsheep/github-to-sqlite/issues/60#issuecomment-770071568 https://api.github.com/repos/dogsheep/github-to-sqlite/issues/60 MDEyOklzc3VlQ29tbWVudDc3MDA3MTU2OA== simonw 9599 2021-01-29T21:56:15Z 2021-01-29T21:56:15Z MEMBER I really like the way you're using pipes here - really smart. It's similar to how I build the demo database in this GitHub Actions workflow: https://github.com/dogsheep/github-to-sqlite/blob/62dfd3bc4014b108200001ef4bc746feb6f33b45/.github/workflows/deploy-demo.yml#L52-L82 `twitter-to-sqlite` actually has a mechanism for doing this kind of thing, documented at https://github.com/dogsheep/twitter-to-sqlite#providing-input-from-a-sql-query-with---sql-and---attach It lets you do things like: ``` $ twitter-to-sqlite users-lookup my.db --sql="select follower_id from following" --ids ``` Maybe I should add something similar to `github-to-sqlite`? Feels like it could be really useful. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Use Data from SQLite in other commands 797097140  
774385092 https://github.com/simonw/datasette/issues/1217#issuecomment-774385092 https://api.github.com/repos/simonw/datasette/issues/1217 MDEyOklzc3VlQ29tbWVudDc3NDM4NTA5Mg== plpxsk 6165713 2021-02-06T02:49:11Z 2021-02-06T02:49:11Z NONE A good reference seems to be the note to run `datasette` as a module in https://github.com/simonw/datasette/pull/556 {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Possible to deploy as a python app (for Rstudio connect server)? 802513359  
777178728 https://github.com/simonw/datasette/issues/1200#issuecomment-777178728 https://api.github.com/repos/simonw/datasette/issues/1200 MDEyOklzc3VlQ29tbWVudDc3NzE3ODcyOA== simonw 9599 2021-02-11T03:13:59Z 2021-02-11T03:13:59Z OWNER I came up with the need for this while playing with this tool: https://calands.datasettes.com/calands?sql=select%0D%0A++AsGeoJSON(geometry)%2C+*%0D%0Afrom%0D%0A++CPAD_2020a_SuperUnits%0D%0Awhere%0D%0A++PARK_NAME+like+'%25mini%25'+and%0D%0A++Intersects(GeomFromGeoJSON(%3Afreedraw)%2C+geometry)+%3D+1%0D%0A++and+CPAD_2020a_SuperUnits.rowid+in+(%0D%0A++++select%0D%0A++++++rowid%0D%0A++++from%0D%0A++++++SpatialIndex%0D%0A++++where%0D%0A++++++f_table_name+%3D+'CPAD_2020a_SuperUnits'%0D%0A++++++and+search_frame+%3D+GeomFromGeoJSON(%3Afreedraw)%0D%0A++)&freedraw={"type"%3A"MultiPolygon"%2C"coordinates"%3A[[[[-122.42202758789064%2C37.82280243352759]%2C[-122.39868164062501%2C37.823887203271454]%2C[-122.38220214843751%2C37.81846319511331]%2C[-122.35061645507814%2C37.77071473849611]%2C[-122.34924316406251%2C37.74465712069939]%2C[-122.37258911132814%2C37.703380457832374]%2C[-122.39044189453125%2C37.690340943717715]%2C[-122.41241455078126%2C37.680559803205135]%2C[-122.44262695312501%2C37.67295135774715]%2C[-122.47283935546876%2C37.67295135774715]%2C[-122.52502441406251%2C37.68382032669382]%2C[-122.53463745117189%2C37.6892542140253]%2C[-122.54699707031251%2C37.690340943717715]%2C[-122.55798339843751%2C37.72945260537781]%2C[-122.54287719726564%2C37.77831314799672]%2C[-122.49893188476564%2C37.81303878836991]%2C[-122.46185302734376%2C37.82822612280363]%2C[-122.42889404296876%2C37.82822612280363]%2C[-122.42202758789064%2C37.82280243352759]]]]} - before I fixed https://github.com/simonw/datasette-leaflet-geojson/issues/16 it was loading a LOT of maps, which felt bad. I wanted to be able to link people to that page with a hard limit on the number of rows displayed on that page. It's mainly to guard against unexpected behaviour from limit-less queries though. It's not a very high priority feature! {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} ?_size=10 option for the arbitrary query page would be useful 792890765  
777798330 https://github.com/dogsheep/evernote-to-sqlite/issues/11#issuecomment-777798330 https://api.github.com/repos/dogsheep/evernote-to-sqlite/issues/11 MDEyOklzc3VlQ29tbWVudDc3Nzc5ODMzMA== simonw 9599 2021-02-11T21:18:58Z 2021-02-11T21:18:58Z MEMBER Thanks for the fix! {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} XML parse error 792851444  
778467759 https://github.com/simonw/datasette/issues/1220#issuecomment-778467759 https://api.github.com/repos/simonw/datasette/issues/1220 MDEyOklzc3VlQ29tbWVudDc3ODQ2Nzc1OQ== aborruso 30607 2021-02-12T21:35:17Z 2021-02-12T21:35:17Z NONE Thank you {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Installing datasette via docker: Path 'fixtures.db' does not exist 806743116  
778510528 https://github.com/simonw/sqlite-utils/issues/131#issuecomment-778510528 https://api.github.com/repos/simonw/sqlite-utils/issues/131 MDEyOklzc3VlQ29tbWVudDc3ODUxMDUyOA== simonw 9599 2021-02-12T23:25:06Z 2021-02-12T23:25:06Z OWNER If `-c` isn't available, maybe `-t` or `--type` would work for specifying column types: ``` sqlite-utils insert db.db images images.tsv \ --tsv \ --type id int \ --type score float ``` or ``` sqlite-utils insert db.db images images.tsv \ --tsv \ -t id int \ -t score float ``` {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} sqlite-utils insert: options for column types 675753042  
782789598 https://github.com/simonw/datasette/issues/782#issuecomment-782789598 https://api.github.com/repos/simonw/datasette/issues/782 MDEyOklzc3VlQ29tbWVudDc4Mjc4OTU5OA== simonw 9599 2021-02-21T03:30:02Z 2021-02-21T03:30:02Z OWNER Another benefit to default:object - I could include a key that shows a list of available extras. I could then use that to power an interactive API explorer. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Redesign default .json format 627794879  
784567547 https://github.com/simonw/datasette/issues/1241#issuecomment-784567547 https://api.github.com/repos/simonw/datasette/issues/1241 MDEyOklzc3VlQ29tbWVudDc4NDU2NzU0Nw== simonw 9599 2021-02-23T22:45:56Z 2021-02-23T22:46:12Z OWNER I really like the way the Share feature on Stack Overflow works: https://stackoverflow.com/questions/18934149/how-can-i-use-postgresqls-text-column-type-in-django {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} Share button for copying current URL 814595021  
786925280 https://github.com/dogsheep/google-takeout-to-sqlite/pull/5#issuecomment-786925280 https://api.github.com/repos/dogsheep/google-takeout-to-sqlite/issues/5 MDEyOklzc3VlQ29tbWVudDc4NjkyNTI4MA== simonw 9599 2021-02-26T22:23:10Z 2021-02-26T22:23:10Z MEMBER Thanks! I requested my Gmail export from takeout - once that arrives I'll test it against this and then merge the PR. {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} WIP: Add Gmail takeout mbox import 813880401  

Next page

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

CREATE TABLE [issue_comments] (
   [html_url] TEXT,
   [issue_url] TEXT,
   [id] INTEGER PRIMARY KEY,
   [node_id] TEXT,
   [user] INTEGER REFERENCES [users]([id]),
   [created_at] TEXT,
   [updated_at] TEXT,
   [author_association] TEXT,
   [body] TEXT,
   [reactions] TEXT,
   [issue] INTEGER REFERENCES [issues]([id])
, [performed_via_github_app] TEXT);
CREATE INDEX [idx_issue_comments_issue]
                ON [issue_comments] ([issue]);
CREATE INDEX [idx_issue_comments_user]
                ON [issue_comments] ([user]);
Powered by Datasette · Queries took 402.746ms · About: simonw/datasette-graphql