issue_comments
8,883 rows where user = 9599 sorted by body
This data as json, CSV (advanced)
user 1
- simonw · 8,740 ✖
id | html_url | issue_url | node_id | user | created_at | updated_at | author_association | body ▼ | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
733247101 | https://github.com/simonw/datasette/issues/1106#issuecomment-733247101 | https://api.github.com/repos/simonw/datasette/issues/1106 | MDEyOklzc3VlQ29tbWVudDczMzI0NzEwMQ== | simonw 9599 | 2020-11-24T21:35:29Z | 2020-11-24T21:36:04Z | OWNER | https://docs.datasette.io/en/latest/config.html isn't redirecting though, even after I tried running a rebuild of the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rebrand and redirect config.rst as settings.rst 749983857 | |
344048656 | https://github.com/simonw/datasette/issues/69#issuecomment-344048656 | https://api.github.com/repos/simonw/datasette/issues/69 | MDEyOklzc3VlQ29tbWVudDM0NDA0ODY1Ng== | simonw 9599 | 2017-11-13T20:32:47Z | 2017-11-13T20:32:47Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Enforce pagination (or at least limits) for arbitrary custom SQL 273248366 | ||
343709217 | https://github.com/simonw/datasette/issues/65#issuecomment-343709217 | https://api.github.com/repos/simonw/datasette/issues/65 | MDEyOklzc3VlQ29tbWVudDM0MzcwOTIxNw== | simonw 9599 | 2017-11-12T02:36:37Z | 2017-11-12T02:36:37Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Re-implement ?sql= mode 273191608 | ||
682312736 | https://github.com/simonw/datasette/issues/954#issuecomment-682312736 | https://api.github.com/repos/simonw/datasette/issues/954 | MDEyOklzc3VlQ29tbWVudDY4MjMxMjczNg== | simonw 9599 | 2020-08-28T04:05:01Z | 2020-08-28T04:05:10Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Remove old register_output_renderer dict mechanism in Datasette 1.0 687694947 | |
718078447 | https://github.com/simonw/datasette/pull/1059#issuecomment-718078447 | https://api.github.com/repos/simonw/datasette/issues/1059 | MDEyOklzc3VlQ29tbWVudDcxODA3ODQ0Nw== | simonw 9599 | 2020-10-28T17:07:59Z | 2020-10-28T17:08:14Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Update aiofiles requirement from <0.6,>=0.4 to >=0.4,<0.7 731445447 | ||
1060065736 | https://github.com/simonw/datasette/pull/1648#issuecomment-1060065736 | https://api.github.com/repos/simonw/datasette/issues/1648 | IC_kwDOBm6k_c4_L1HI | simonw 9599 | 2022-03-06T23:43:00Z | 2022-03-06T23:43:11Z | OWNER |
Yes, I'm going to do this. At the moment if a DB file is called |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use dash encoding for table names and row primary keys in URLs 1160432941 | |
974575512 | https://github.com/simonw/datasette/issues/1522#issuecomment-974575512 | https://api.github.com/repos/simonw/datasette/issues/1522 | IC_kwDOBm6k_c46FteY | simonw 9599 | 2021-11-20T02:09:20Z | 2021-11-20T02:09:20Z | OWNER |
That eventually failed, but I did get these in the build logs: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Deploy a live instance of demos/apache-proxy 1058896236 | |
619591380 | https://github.com/simonw/datasette/issues/648#issuecomment-619591380 | https://api.github.com/repos/simonw/datasette/issues/648 | MDEyOklzc3VlQ29tbWVudDYxOTU5MTM4MA== | simonw 9599 | 2020-04-26T17:33:04Z | 2020-04-26T17:33:04Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for adding arbitrary pages like /about 534492501 | |
619591533 | https://github.com/simonw/datasette/pull/737#issuecomment-619591533 | https://api.github.com/repos/simonw/datasette/issues/737 | MDEyOklzc3VlQ29tbWVudDYxOTU5MTUzMw== | simonw 9599 | 2020-04-26T17:33:48Z | 2020-04-26T17:33:48Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Custom pages mechanism, refs #648 607067303 | |
1690800641 | https://github.com/simonw/datasette/issues/2143#issuecomment-1690800641 | https://api.github.com/repos/simonw/datasette/issues/2143 | IC_kwDOBm6k_c5kx5IB | simonw 9599 | 2023-08-24T00:11:16Z | 2023-08-24T00:11:16Z | OWNER |
That's a neat example thanks! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
De-tangling Metadata before Datasette 1.0 1855885427 | |
1017016553 | https://github.com/simonw/datasette/issues/1356#issuecomment-1017016553 | https://api.github.com/repos/simonw/datasette/issues/1356 | IC_kwDOBm6k_c48nnDp | simonw 9599 | 2022-01-20T01:06:37Z | 2022-01-20T01:06:37Z | OWNER |
I figured out a neat pattern for streaming JSON arrays in this TIL: https://til.simonwillison.net/python/output-json-array-streaming |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research: syntactic sugar for using --get with SQL queries, maybe "datasette query" 910092577 | |
1646657324 | https://github.com/simonw/sqlite-utils/issues/565#issuecomment-1646657324 | https://api.github.com/repos/simonw/sqlite-utils/issues/565 | IC_kwDOCGYnMM5iJf8s | simonw 9599 | 2023-07-22T19:39:06Z | 2023-07-22T19:39:06Z | OWNER |
I think |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Table renaming: db.rename_table() and sqlite-utils rename-table 1786258502 | |
1045075207 | https://github.com/simonw/datasette/issues/1439#issuecomment-1045075207 | https://api.github.com/repos/simonw/datasette/issues/1439 | IC_kwDOBm6k_c4-SpUH | simonw 9599 | 2022-02-18T19:39:35Z | 2022-02-18T19:40:13Z | OWNER |
Here's what those look like with the updated version of
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rethink how .ext formats (v.s. ?_format=) works before 1.0 973139047 | |
1684488526 | https://github.com/simonw/datasette/issues/2143#issuecomment-1684488526 | https://api.github.com/repos/simonw/datasette/issues/2143 | IC_kwDOBm6k_c5kZ0FO | simonw 9599 | 2023-08-18T22:18:39Z | 2023-08-18T22:18:39Z | OWNER |
I'm not a fan of that. I feel like software history is full of examples of projects that implemented configuration-as-code and then later regretted it - the most recent example is I don't think having people dynamically generate JSON/YAML for their configuration is a big burden. I'd have to see some very compelling use-cases to convince me otherwise. That said, I do really like a bias towards settings that can be changed at runtime. Datasette has suffered a bit from some settings that can't be easily changed at runtime already - hence my gnarly https://github.com/simonw/datasette-remote-metadata plugin. For things like Datasette Cloud for example the more people can configure without rebooting their container the better! I don't think live reconfiguration at runtime is incompatible with JSON/YAML configuration though. Caddy is one of my favourite examples of software that can be entirely re-configured at runtime by POSTING a big blob of JSON to it: https://caddyserver.com/docs/quick-starts/api |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
De-tangling Metadata before Datasette 1.0 1855885427 | |
974683220 | https://github.com/simonw/datasette/issues/1522#issuecomment-974683220 | https://api.github.com/repos/simonw/datasette/issues/1522 | IC_kwDOBm6k_c46GHxU | simonw 9599 | 2021-11-20T17:29:12Z | 2021-11-20T17:29:12Z | OWNER |
That's a great idea. I'll try running on a non-Knative host too (probably Fly - though they actually run containers using Firecracker which ends up being completely different). Cloud Run are the only Knative host I've used, know of any others aside from Scaleway? They look like they're worth getting familiar with. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Deploy a live instance of demos/apache-proxy 1058896236 | |
850583584 | https://github.com/simonw/datasette/pull/1296#issuecomment-850583584 | https://api.github.com/repos/simonw/datasette/issues/1296 | MDEyOklzc3VlQ29tbWVudDg1MDU4MzU4NA== | simonw 9599 | 2021-05-28T18:06:11Z | 2021-05-28T18:06:11Z | OWNER |
That's a huge surprise to me! And most welcome. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Dockerfile: use Ubuntu 20.10 as base 855446829 | |
797158641 | https://github.com/simonw/datasette/issues/670#issuecomment-797158641 | https://api.github.com/repos/simonw/datasette/issues/670 | MDEyOklzc3VlQ29tbWVudDc5NzE1ODY0MQ== | simonw 9599 | 2021-03-12T00:59:49Z | 2021-03-12T00:59:49Z | OWNER |
It looks like the answer to this is yes - I'll need users to setup read-only credentials. Here's a TIL about that: https://til.simonwillison.net/postgresql/read-only-postgresql-user |
{ "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 1, "rocket": 0, "eyes": 0 } |
Prototoype for Datasette on PostgreSQL 564833696 | |
705926445 | https://github.com/simonw/datasette/pull/1000#issuecomment-705926445 | https://api.github.com/repos/simonw/datasette/issues/1000 | MDEyOklzc3VlQ29tbWVudDcwNTkyNjQ0NQ== | simonw 9599 | 2020-10-09T02:15:38Z | 2020-10-09T02:15:38Z | OWNER |
That one is caused by |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette.client internal requests mechanism 717746043 | |
782748093 | https://github.com/simonw/datasette/issues/782#issuecomment-782748093 | https://api.github.com/repos/simonw/datasette/issues/782 | MDEyOklzc3VlQ29tbWVudDc4Mjc0ODA5Mw== | simonw 9599 | 2021-02-20T20:54:52Z | 2021-02-20T20:54:52Z | OWNER |
Adding a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Redesign default .json format 627794879 | |
846660103 | https://github.com/simonw/datasette/issues/615#issuecomment-846660103 | https://api.github.com/repos/simonw/datasette/issues/615 | MDEyOklzc3VlQ29tbWVudDg0NjY2MDEwMw== | simonw 9599 | 2021-05-24T00:47:00Z | 2021-05-24T00:47:00Z | OWNER |
Removing the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_col= and ?_nocol= support for toggling columns on table view 517451234 | |
1539109587 | https://github.com/simonw/sqlite-utils/issues/520#issuecomment-1539109587 | https://api.github.com/repos/simonw/sqlite-utils/issues/520 | IC_kwDOCGYnMM5bvPLT | simonw 9599 | 2023-05-08T22:00:46Z | 2023-05-08T22:00:46Z | OWNER |
Yes it is, good catch! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
rows_from_file() raises confusing error if file-like object is not in binary mode 1516644980 | |
869071790 | https://github.com/simonw/datasette/issues/1384#issuecomment-869071790 | https://api.github.com/repos/simonw/datasette/issues/1384 | MDEyOklzc3VlQ29tbWVudDg2OTA3MTc5MA== | simonw 9599 | 2021-06-26T23:04:12Z | 2021-06-26T23:04:12Z | OWNER |
Answering my own question: here's how Brandon implements it in his That's using a completely separate SQLite connection (actually wrapped in This is a pragmatic solution, which works - and likely performs just fine, because SQL queries like this against a small database are so fast that not running them asynchronously isn't actually a problem. But... it's weird. Everywhere else in Datasette land uses |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Plugin hook for dynamic metadata 930807135 | |
1696709110 | https://github.com/simonw/datasette/pull/2162#issuecomment-1696709110 | https://api.github.com/repos/simonw/datasette/issues/2162 | IC_kwDOBm6k_c5lIbn2 | simonw 9599 | 2023-08-29T03:20:40Z | 2023-08-29T03:22:47Z | OWNER |
I'm completely happy for the I don't think it causes any harm, and it could even be quite useful to have them visible on disk - other applications could read the Having those tables stick around in |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add new `--internal internal.db` option, deprecate legacy `_internal` database 1870672704 | |
1006294777 | https://github.com/simonw/sqlite-utils/pull/361#issuecomment-1006294777 | https://api.github.com/repos/simonw/sqlite-utils/issues/361 | IC_kwDOCGYnMM47-tb5 | simonw 9599 | 2022-01-06T05:24:54Z | 2022-01-06T05:24:54Z | OWNER |
That turned out to be a bad idea because it meant exhausting the iterator early for the check - before we got to the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
--lines and --text and --convert and --import 1094890366 | |
389579762 | https://github.com/simonw/datasette/issues/266#issuecomment-389579762 | https://api.github.com/repos/simonw/datasette/issues/266 | MDEyOklzc3VlQ29tbWVudDM4OTU3OTc2Mg== | simonw 9599 | 2018-05-16T16:21:12Z | 2018-05-16T16:21:12Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Export to CSV 323681589 | |
1317797044 | https://github.com/simonw/datasette/pull/1893#issuecomment-1317797044 | https://api.github.com/repos/simonw/datasette/issues/1893 | IC_kwDOBm6k_c5Oi_y0 | simonw 9599 | 2022-11-16T23:08:34Z | 2022-11-16T23:08:34Z | OWNER |
Yeah, push that up. I'm happy to wire in the query right after we land this. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Upgrade to CodeMirror 6, add SQL autocomplete 1450363982 | |
968451954 | https://github.com/simonw/sqlite-utils/issues/329#issuecomment-968451954 | https://api.github.com/repos/simonw/sqlite-utils/issues/329 | IC_kwDOCGYnMM45uWdy | simonw 9599 | 2021-11-15T02:05:29Z | 2021-11-15T02:05:29Z | OWNER |
I'm not going to do this, it's unnecessary extra complexity and it means the function that fixes the column names needs to have access to the current |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rethink approach to [ and ] in column names (currently throws error) 1005891028 | |
1407568923 | https://github.com/simonw/datasette/pull/2008#issuecomment-1407568923 | https://api.github.com/repos/simonw/datasette/issues/2008 | IC_kwDOBm6k_c5T5cwb | simonw 9599 | 2023-01-29T05:47:36Z | 2023-01-29T05:47:36Z | OWNER |
We don't have any performance tests yet - would be a useful thing to add, I've not built anything like that before (at least not in CI, I've always done as-hoc performance testing using something like Locust) so I don't have a great feel for how it could work. I see not having to change the tests at all for this change as a really positive sign. If you find any behaviour differences between this and the previous that's a sign we should add a mother test or two specifying the behaviour we want. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
array facet: don't materialize unnecessary columns 1560982210 | |
876616414 | https://github.com/simonw/datasette/issues/268#issuecomment-876616414 | https://api.github.com/repos/simonw/datasette/issues/268 | MDEyOklzc3VlQ29tbWVudDg3NjYxNjQxNA== | simonw 9599 | 2021-07-08T17:29:04Z | 2021-07-08T17:29:04Z | OWNER |
That's a deliberate feature (albeit controversial, see #759) - part of the main problem here is that it's easy to construct a SQLite full-text search string which results in a database error. This is a bad user-experience! You can opt-in to raw SQL queries by appending But maybe there should be an option for turning that on by default without needing the query string? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for ranking results from SQLite full-text search 323718842 | |
974701788 | https://github.com/simonw/datasette/issues/1519#issuecomment-974701788 | https://api.github.com/repos/simonw/datasette/issues/1519 | IC_kwDOBm6k_c46GMTc | simonw 9599 | 2021-11-20T19:42:29Z | 2021-11-20T19:42:29Z | OWNER |
On further thought I'm not going to do this. Having Datasette work behind a proxy the way it does right now is clearly easy for people to deploy (now that I've fixed the bugs) and I trust my improved tests to catch problems in the future. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
base_url is omitted in JSON and CSV views 1058790545 | |
1029335225 | https://github.com/simonw/sqlite-utils/pull/385#issuecomment-1029335225 | https://api.github.com/repos/simonw/sqlite-utils/issues/385 | IC_kwDOCGYnMM49Wmi5 | simonw 9599 | 2022-02-03T19:39:40Z | 2022-02-03T19:39:40Z | OWNER |
Yeah that's too clever. You know what? I'm pretty confident we are both massively over-thinking this. We should put the methods on |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add new spatialite helper methods 1102899312 | |
1355319541 | https://github.com/simonw/datasette/pull/1960#issuecomment-1355319541 | https://api.github.com/repos/simonw/datasette/issues/1960 | IC_kwDOBm6k_c5QyIj1 | simonw 9599 | 2022-12-16T17:58:24Z | 2022-12-16T17:58:46Z | OWNER |
It did not: I'm still seeing those same failures. Frustrating: https://github.com/simonw/datasette/actions/runs/3715317653/jobs/6300336884
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Port as many tests as possible to async def tests against ds_client 1499150951 | |
698178101 | https://github.com/simonw/sqlite-utils/issues/172#issuecomment-698178101 | https://api.github.com/repos/simonw/sqlite-utils/issues/172 | MDEyOklzc3VlQ29tbWVudDY5ODE3ODEwMQ== | simonw 9599 | 2020-09-24T07:48:57Z | 2020-09-24T07:49:20Z | OWNER |
Thu Sep 24 00:48:20 PDT 2020 Thu Sep 24 00:48:24 PDT 2020 Thu Sep 24 00:48:28 PDT 2020 Thu Sep 24 00:48:32 PDT 2020 ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Improve performance of extract operations 707427200 | |
877717262 | https://github.com/simonw/datasette/issues/1388#issuecomment-877717262 | https://api.github.com/repos/simonw/datasette/issues/1388 | MDEyOklzc3VlQ29tbWVudDg3NzcxNzI2Mg== | simonw 9599 | 2021-07-10T23:37:54Z | 2021-07-10T23:37:54Z | OWNER |
I'm going to hold off on implementing this until someone asks for it. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Serve using UNIX domain socket 939051549 | |
1689207309 | https://github.com/simonw/datasette/issues/2123#issuecomment-1689207309 | https://api.github.com/repos/simonw/datasette/issues/2123 | IC_kwDOBm6k_c5kr0IN | simonw 9599 | 2023-08-23T03:07:27Z | 2023-08-23T03:07:27Z | OWNER |
Yes please! What an odd bug. |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette serve when invoked with --reload interprets the serve command as a file 1825007061 | |
846482057 | https://github.com/simonw/datasette/issues/1331#issuecomment-846482057 | https://api.github.com/repos/simonw/datasette/issues/1331 | MDEyOklzc3VlQ29tbWVudDg0NjQ4MjA1Nw== | simonw 9599 | 2021-05-23T00:39:55Z | 2021-05-23T00:39:55Z | OWNER |
Bumped that dependency in b64d87204612a84663616e075f542499a5d82a03 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add support for Jinja2 version 3.0 893537744 | |
1317449610 | https://github.com/simonw/datasette/pull/1893#issuecomment-1317449610 | https://api.github.com/repos/simonw/datasette/issues/1893 | IC_kwDOBm6k_c5Ohq-K | simonw 9599 | 2022-11-16T18:14:28Z | 2022-11-16T18:14:28Z | OWNER |
Huh, yeah we should definitely have |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Upgrade to CodeMirror 6, add SQL autocomplete 1450363982 | |
1462921890 | https://github.com/simonw/datasette/pull/2031#issuecomment-1462921890 | https://api.github.com/repos/simonw/datasette/issues/2031 | IC_kwDOBm6k_c5XMmqi | simonw 9599 | 2023-03-09T22:35:30Z | 2023-03-09T22:35:30Z | OWNER |
Sure, let's merge that one too - it can go out in the next |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Expand foreign key references in row view as well 1605481359 | |
650842514 | https://github.com/simonw/datasette/issues/864#issuecomment-650842514 | https://api.github.com/repos/simonw/datasette/issues/864 | MDEyOklzc3VlQ29tbWVudDY1MDg0MjUxNA== | simonw 9599 | 2020-06-29T00:12:59Z | 2020-06-29T00:12:59Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette.add_message() doesn't work inside plugins 644309017 | |
691526719 | https://github.com/simonw/datasette/issues/262#issuecomment-691526719 | https://api.github.com/repos/simonw/datasette/issues/262 | MDEyOklzc3VlQ29tbWVudDY5MTUyNjcxOQ== | simonw 9599 | 2020-09-12T18:19:50Z | 2020-09-12T18:19:50Z | OWNER |
I built a version of that a while ago as the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add ?_extra= mechanism for requesting extra properties in JSON 323658641 | |
599127453 | https://github.com/simonw/sqlite-utils/issues/92#issuecomment-599127453 | https://api.github.com/repos/simonw/sqlite-utils/issues/92 | MDEyOklzc3VlQ29tbWVudDU5OTEyNzQ1Mw== | simonw 9599 | 2020-03-14T19:50:08Z | 2020-03-14T19:50:08Z | OWNER |
I currently treat those as |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.columns_dict doesn't work for all possible column types 581339961 | |
974559176 | https://github.com/simonw/datasette/issues/1519#issuecomment-974559176 | https://api.github.com/repos/simonw/datasette/issues/1519 | IC_kwDOBm6k_c46FpfI | simonw 9599 | 2021-11-20T00:42:08Z | 2021-11-20T00:42:08Z | OWNER |
This worked, I managed to get the tests to fail! Here's the change I made: ```diff diff --git a/tests/test_html.py b/tests/test_html.py index f24165b..dbdfe59 100644 --- a/tests/test_html.py +++ b/tests/test_html.py @@ -1614,12 +1614,19 @@ def test_metadata_sort_desc(app_client): "/fixtures/compound_three_primary_keys/a,a,a", "/fixtures/paginated_view", "/fixtures/facetable", + "/fixtures?sql=select+1", ], ) -def test_base_url_config(app_client_base_url_prefix, path): +@pytest.mark.parametrize("use_prefix", (True, False)) +def test_base_url_config(app_client_base_url_prefix, path, use_prefix): client = app_client_base_url_prefix - response = client.get("/prefix/" + path.lstrip("/")) + path_to_get = path + if use_prefix: + path_to_get = "/prefix/" + path.lstrip("/") + response = client.get(path_to_get) soup = Soup(response.body, "html.parser") + if path == "/fixtures?sql=select+1": + assert False for el in soup.findAll(["a", "link", "script"]): if "href" in el.attrs: href = el["href"] @@ -1642,11 +1649,12 @@ def test_base_url_config(app_client_base_url_prefix, path): # If this has been made absolute it may start http://localhost/ if href.startswith("http://localhost/"): href = href[len("http://localost/") :] - assert href.startswith("/prefix/"), { + assert href.startswith("/prefix/"), json.dumps({ "path": path, + "path_to_get": path_to_get, "href_or_src": href, "element_parent": str(el.parent), - } + }, indent=4, default=repr) def test_base_url_affects_metadata_extra_css_urls(app_client_base_url_prefix): ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
base_url is omitted in JSON and CSV views 1058790545 | |
1238873948 | https://github.com/simonw/sqlite-utils/issues/471#issuecomment-1238873948 | https://api.github.com/repos/simonw/sqlite-utils/issues/471 | IC_kwDOCGYnMM5J17dc | simonw 9599 | 2022-09-07T03:46:26Z | 2022-09-07T03:46:26Z | OWNER |
Not sure what you mean here? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils query --functions mechanism for registering extra functions 1352932716 | |
392606418 | https://github.com/simonw/datasette/issues/179#issuecomment-392606418 | https://api.github.com/repos/simonw/datasette/issues/179 | MDEyOklzc3VlQ29tbWVudDM5MjYwNjQxOA== | simonw 9599 | 2018-05-28T21:32:37Z | 2018-05-28T21:32:37Z | OWNER |
That's now covered by the plugins mechanism - you can create plugins that define custom template functions: http://datasette.readthedocs.io/en/stable/plugins.html#prepare-jinja2-environment-env |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
More metadata options for template authors 288438570 | |
1059652538 | https://github.com/simonw/sqlite-utils/issues/412#issuecomment-1059652538 | https://api.github.com/repos/simonw/sqlite-utils/issues/412 | IC_kwDOCGYnMM4_KQO6 | simonw 9599 | 2022-03-05T02:13:17Z | 2022-03-05T02:13:17Z | OWNER |
Shows a DateFrame``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Optional Pandas integration 1160182768 | |
389626715 | https://github.com/simonw/datasette/issues/266#issuecomment-389626715 | https://api.github.com/repos/simonw/datasette/issues/266 | MDEyOklzc3VlQ29tbWVudDM4OTYyNjcxNQ== | simonw 9599 | 2018-05-16T18:50:46Z | 2018-05-16T18:50:46Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Export to CSV 323681589 | |
1045024276 | https://github.com/simonw/datasette/issues/1439#issuecomment-1045024276 | https://api.github.com/repos/simonw/datasette/issues/1439 | IC_kwDOBm6k_c4-Sc4U | simonw 9599 | 2022-02-18T19:01:42Z | 2022-02-18T19:55:24Z | OWNER |
def dash_decode(s): return s.replace("-/", "/").replace("-.", ".").replace("--", "-") ``` ```pycon
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rethink how .ext formats (v.s. ?_format=) works before 1.0 973139047 | |
901475812 | https://github.com/simonw/datasette/issues/1293#issuecomment-901475812 | https://api.github.com/repos/simonw/datasette/issues/1293 | IC_kwDOBm6k_c41u23k | simonw 9599 | 2021-08-18T22:41:19Z | 2021-08-18T22:41:19Z | OWNER |
I'm going to do this, and call the Python library |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show column metadata plus links for foreign keys on arbitrary query results 849978964 | |
997502242 | https://github.com/simonw/sqlite-utils/issues/163#issuecomment-997502242 | https://api.github.com/repos/simonw/sqlite-utils/issues/163 | IC_kwDOCGYnMM47dK0i | simonw 9599 | 2021-12-20T00:56:45Z | 2021-12-20T00:56:52Z | OWNER |
I implemented that in: - #251 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Idea: conversions= could take Python functions 706001517 | |
782747743 | https://github.com/simonw/datasette/issues/782#issuecomment-782747743 | https://api.github.com/repos/simonw/datasette/issues/782 | MDEyOklzc3VlQ29tbWVudDc4Mjc0Nzc0Mw== | simonw 9599 | 2021-02-20T20:52:10Z | 2021-02-20T20:52:10Z | OWNER |
The problem there is that https://latest-with-plugins.datasette.io/github?sql=select+*+from+commits - Datasette returns 1,000 results, and shows a "Custom SQL query returning more than 1,000 rows" message at the top. That's the I find myself using This is only really a concern for arbitrary SQL queries though - for table pages such as https://latest-with-plugins.datasette.io/github/commits?_size=10 adding |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Redesign default .json format 627794879 | |
713175741 | https://github.com/simonw/datasette/issues/1034#issuecomment-713175741 | https://api.github.com/repos/simonw/datasette/issues/1034 | MDEyOklzc3VlQ29tbWVudDcxMzE3NTc0MQ== | simonw 9599 | 2020-10-20T22:26:45Z | 2020-10-20T22:26:45Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Better way of representing binary data in .csv output 725184645 | |
999870282 | https://github.com/simonw/datasette/issues/1518#issuecomment-999870282 | https://api.github.com/repos/simonw/datasette/issues/1518 | IC_kwDOBm6k_c47mM9K | simonw 9599 | 2021-12-22T20:45:56Z | 2021-12-22T20:46:08Z | OWNER |
I wrote code to execute those in parallel using ```diff diff --git a/datasette/views/table.py b/datasette/views/table.py index 9808fd2..ec9db64 100644 --- a/datasette/views/table.py +++ b/datasette/views/table.py @@ -1,3 +1,4 @@ +import asyncio import urllib import itertools import json @@ -615,44 +616,37 @@ class TableView(RowTableShared): if request.args.get("_timelimit"): extra_args["custom_time_limit"] = int(request.args.get("_timelimit"))
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Complete refactor of TableView and table.html template 1058072543 | |
855428601 | https://github.com/simonw/datasette/issues/1362#issuecomment-855428601 | https://api.github.com/repos/simonw/datasette/issues/1362 | MDEyOklzc3VlQ29tbWVudDg1NTQyODYwMQ== | simonw 9599 | 2021-06-06T16:55:33Z | 2021-06-06T16:55:33Z | OWNER |
Hah, of course! Thanks for the correction. So the nonce mechanism would actually be pretty great here, especially for the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Consider using CSP to protect against future XSS 912864936 | |
905021933 | https://github.com/simonw/sqlite-utils/issues/319#issuecomment-905021933 | https://api.github.com/repos/simonw/sqlite-utils/issues/319 | IC_kwDOCGYnMM418Ynt | simonw 9599 | 2021-08-24T22:36:04Z | 2021-08-24T22:36:04Z | OWNER |
I thought about supporting those different policies (with something like ``` Error: Could not read file '/Users/simon/Dropbox/Development/sqlite-utils/data.txt' as text 'utf-8' codec can't decode byte 0xe3 in position 83: invalid continuation byte The input you provided uses a character encoding other than utf-8. You can fix this by passing the --encoding= option with the encoding of the file. If you do not know the encoding, running 'file filename.csv' may tell you. It's often worth trying: --encoding=latin-1
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
[Enhancement] Please allow 'insert-files' to insert content as text. 976399638 | |
855369819 | https://github.com/simonw/datasette/issues/283#issuecomment-855369819 | https://api.github.com/repos/simonw/datasette/issues/283 | MDEyOklzc3VlQ29tbWVudDg1NTM2OTgxOQ== | simonw 9599 | 2021-06-06T09:40:18Z | 2021-06-06T09:40:18Z | OWNER |
That issue is fixed in #1276. |
{ "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 1, "rocket": 0, "eyes": 0 } |
Support cross-database joins 325958506 | |
650593122 | https://github.com/simonw/datasette/issues/842#issuecomment-650593122 | https://api.github.com/repos/simonw/datasette/issues/842 | MDEyOklzc3VlQ29tbWVudDY1MDU5MzEyMg== | simonw 9599 | 2020-06-27T18:03:02Z | 2020-06-27T18:03:10Z | OWNER |
This is an open security hole in https://github.com/simonw/datasette/commit/94c1315f0030fd58ce46a9294052c5c9d9d181c7 - it's useful for testing, but I need to remove it before I land that branch. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Magic parameters for canned queries 638212085 | |
618775631 | https://github.com/simonw/datasette/issues/648#issuecomment-618775631 | https://api.github.com/repos/simonw/datasette/issues/648 | MDEyOklzc3VlQ29tbWVudDYxODc3NTYzMQ== | simonw 9599 | 2020-04-24T03:03:35Z | 2020-04-24T03:03:35Z | OWNER |
I think I could do that with a custom template function - if that function is called during the render then we follow those instructions instead of returning the rendered HTML. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for adding arbitrary pages like /about 534492501 | |
1203190312 | https://github.com/simonw/sqlite-utils/pull/460#issuecomment-1203190312 | https://api.github.com/repos/simonw/sqlite-utils/issues/460 | IC_kwDOCGYnMM5Htzoo | simonw 9599 | 2022-08-02T20:36:58Z | 2022-08-02T20:36:58Z | OWNER |
Entirely my fault, fixed here :https://github.com/simonw/sqlite-utils/commit/98a28cbfe6cea67f6334b42b74f35b0ddd309561 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Cross-link CLI to Python docs 1326087800 | |
1316340865 | https://github.com/simonw/datasette/pull/1893#issuecomment-1316340865 | https://api.github.com/repos/simonw/datasette/issues/1893 | IC_kwDOBm6k_c5OdcSB | simonw 9599 | 2022-11-16T04:49:30Z | 2022-11-16T04:49:43Z | OWNER |
If you can come up with a static example JSON data structure example that does the right thing, I'm happy to refactor QueryView to make that available to the template - or even have a separate |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Upgrade to CodeMirror 6, add SQL autocomplete 1450363982 | |
1030456717 | https://github.com/simonw/sqlite-utils/issues/398#issuecomment-1030456717 | https://api.github.com/repos/simonw/sqlite-utils/issues/398 | IC_kwDOCGYnMM49a4WN | simonw 9599 | 2022-02-05T00:16:42Z | 2022-02-05T00:16:42Z | OWNER |
That's a good call. I'm happy for |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add SpatiaLite helpers to CLI 1124237013 | |
782741719 | https://github.com/simonw/datasette/issues/782#issuecomment-782741719 | https://api.github.com/repos/simonw/datasette/issues/782 | MDEyOklzc3VlQ29tbWVudDc4Mjc0MTcxOQ== | simonw 9599 | 2021-02-20T20:05:04Z | 2021-02-20T20:05:04Z | OWNER |
This is something I've not thought very hard about. If there's an error, I need to return a top-level object, not a top-level array, so I can provide details of the error. But this means that client code will have to handle this difference - it will have to know that the returned data can be array-shaped if nothing went wrong, and object-shaped if there's an error. The HTTP status code helps here - calling client code can know that a 200 status code means there will be an array, but an error status code means an object. If developers really hate that the shape could be different, they can always use |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Redesign default .json format 627794879 | |
1690787394 | https://github.com/simonw/datasette/issues/2143#issuecomment-1690787394 | https://api.github.com/repos/simonw/datasette/issues/2143 | IC_kwDOBm6k_c5kx15C | simonw 9599 | 2023-08-23T23:52:02Z | 2023-08-23T23:52:02Z | OWNER |
Having multiple configs that combine in that way is a really interesting direction.
I'm very keen on separating out the "metadata" - where metadata is the slimmest possible set of things, effectively the data license and the source and the column and table descriptions - from everything else, mainly because I want metadata to be able to travel with the data. One idea that's been discussed before is having an optional mechanism for storing metadata in the SQLite database file itself - potentially in a That's why I'm so keen on splitting out metadata from all of the other stuff - settings and plugin configuration and authentication rules. So really it becomes "true metadata" v.s. "all of the other junk that's accumulated in metadata and |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
De-tangling Metadata before Datasette 1.0 1855885427 | |
1029469630 | https://github.com/simonw/sqlite-utils/issues/363#issuecomment-1029469630 | https://api.github.com/repos/simonw/sqlite-utils/issues/363 | IC_kwDOCGYnMM49XHW- | simonw 9599 | 2022-02-03T22:42:36Z | 2022-02-03T22:42:36Z | OWNER |
Actually no that doesn't work, because this line causes an error before we even get to |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Better error message if `--convert` code fails to return a dict 1094981339 | |
1503838640 | https://github.com/simonw/datasette/issues/2057#issuecomment-1503838640 | https://api.github.com/repos/simonw/datasette/issues/2057 | IC_kwDOBm6k_c5ZosGw | simonw 9599 | 2023-04-11T17:48:23Z | 2023-04-11T17:48:23Z | OWNER |
I was right about that: ```pycon
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
DeprecationWarning: pkg_resources is deprecated as an API 1662951875 | |
974300823 | https://github.com/simonw/datasette/issues/1518#issuecomment-974300823 | https://api.github.com/repos/simonw/datasette/issues/1518 | IC_kwDOBm6k_c46EqaX | simonw 9599 | 2021-11-19T18:18:32Z | 2021-11-19T18:18:32Z | OWNER |
I can definitely support this using pure-JSON - I could make two versions of the row available, one that's an array of cell objects and the other that's an object mapping column names to column raw values. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Complete refactor of TableView and table.html template 1058072543 | |
1539079507 | https://github.com/simonw/sqlite-utils/issues/514#issuecomment-1539079507 | https://api.github.com/repos/simonw/sqlite-utils/issues/514 | IC_kwDOCGYnMM5bvH1T | simonw 9599 | 2023-05-08T21:28:37Z | 2023-05-08T21:28:37Z | OWNER |
Huh... on that basis, it's possible my fix in https://github.com/simonw/sqlite-utils/commit/2376c452a56b0c3e75e7ca698273434e32945304 is incomplete. I only covered the 'not null' case. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
upsert of new row with check constraints fails 1465194249 | |
808757721 | https://github.com/simonw/datasette/issues/1273#issuecomment-808757721 | https://api.github.com/repos/simonw/datasette/issues/1273 | MDEyOklzc3VlQ29tbWVudDgwODc1NzcyMQ== | simonw 9599 | 2021-03-27T16:25:48Z | 2021-03-27T16:25:48Z | OWNER |
That should promote |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Refresh SpatiaLite documentation 838382890 | |
877717791 | https://github.com/simonw/datasette/issues/511#issuecomment-877717791 | https://api.github.com/repos/simonw/datasette/issues/511 | MDEyOklzc3VlQ29tbWVudDg3NzcxNzc5MQ== | simonw 9599 | 2021-07-10T23:45:35Z | 2021-07-10T23:45:35Z | OWNER |
Good news: that line was removed in #1094. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Get Datasette tests passing on Windows in GitHub Actions 456578474 | |
1668786770 | https://github.com/simonw/datasette/pull/2118#issuecomment-1668786770 | https://api.github.com/repos/simonw/datasette/issues/2118 | IC_kwDOBm6k_c5jd6pS | simonw 9599 | 2023-08-08T01:42:55Z | 2023-08-08T01:42:55Z | OWNER |
It looks like that behaviour is only relevant to table views, and it's already implemented - https://latest.datasette.io/fixtures/roadside_attraction_characteristics links to https://latest.datasette.io/fixtures/roadside_attraction_characteristics.csv?_labels=on&_size=max |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
New JSON design for query views 1823352380 | |
1045095348 | https://github.com/simonw/datasette/issues/1439#issuecomment-1045095348 | https://api.github.com/repos/simonw/datasette/issues/1439 | IC_kwDOBm6k_c4-SuO0 | simonw 9599 | 2022-02-18T19:53:48Z | 2022-02-18T19:53:48Z | OWNER |
I don't think this matters. The new regex does indeed capture that kind of page: But Datasette goes through configured route regular expressions in order - so I can have the regex that captures |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rethink how .ext formats (v.s. ?_format=) works before 1.0 973139047 | |
1407733793 | https://github.com/simonw/datasette/pull/2008#issuecomment-1407733793 | https://api.github.com/repos/simonw/datasette/issues/2008 | IC_kwDOBm6k_c5T6FAh | simonw 9599 | 2023-01-29T18:17:40Z | 2023-01-29T18:17:40Z | OWNER |
Had an interesting conversation about this just now: https://fedi.simonwillison.net/@simon/109773800944614366 There's a risk that different runs will return different results due to the shared resource nature of GitHub Actions runners, but a good fix for that is to run comparative tests where you run the benchmark against e.g. both |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
array facet: don't materialize unnecessary columns 1560982210 | |
880150755 | https://github.com/simonw/datasette/issues/268#issuecomment-880150755 | https://api.github.com/repos/simonw/datasette/issues/268 | MDEyOklzc3VlQ29tbWVudDg4MDE1MDc1NQ== | simonw 9599 | 2021-07-14T19:26:47Z | 2021-07-14T19:29:08Z | OWNER |
Mainly that it's possible to generate SQL queries that crash with an error. This was the example that convinced me to default to escaping:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for ranking results from SQLite full-text search 323718842 | |
1646643379 | https://github.com/simonw/sqlite-utils/issues/567#issuecomment-1646643379 | https://api.github.com/repos/simonw/sqlite-utils/issues/567 | IC_kwDOCGYnMM5iJciz | simonw 9599 | 2023-07-22T18:16:54Z | 2023-07-22T18:16:54Z | OWNER |
Yeah, it could do! That's not a terrible idea to be honest, those things have really been proliferating. Alternatively, they could each register themselves as plugins in addition - so if you install e.g. The benefit there is for people who install ```bash brew install sqlite-utils sqlite-utils install pocket-to-sqlite sqlite-utils pocket-to-sqlite ... ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Plugin system 1801394744 | |
1332580395 | https://github.com/simonw/datasette/issues/1922#issuecomment-1332580395 | https://api.github.com/repos/simonw/datasette/issues/1922 | IC_kwDOBm6k_c5PbZAr | simonw 9599 | 2022-11-30T18:38:22Z | 2022-11-30T18:38:22Z | OWNER |
https://mastodon.social/@daniellindsley/109434186252099323 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make sure CORS works for write APIs 1469973742 | |
886122696 | https://github.com/simonw/sqlite-utils/issues/251#issuecomment-886122696 | https://api.github.com/repos/simonw/sqlite-utils/issues/251 | IC_kwDOCGYnMM400SjI | simonw 9599 | 2021-07-24T23:21:32Z | 2021-07-24T23:21:32Z | OWNER |
This is a bit verbose - and having added New idea: ditch the sub-sub-commands and move the
or:
or |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"sqlite-utils convert" command to replace the separate "sqlite-transform" tool 841377702 | |
1045099290 | https://github.com/simonw/datasette/issues/1439#issuecomment-1045099290 | https://api.github.com/repos/simonw/datasette/issues/1439 | IC_kwDOBm6k_c4-SvMa | simonw 9599 | 2022-02-18T19:56:18Z | 2022-02-18T19:56:30Z | OWNER |
I think dash-encoding (new name for this) is the right way forward here. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rethink how .ext formats (v.s. ?_format=) works before 1.0 973139047 | |
1114038259 | https://github.com/simonw/datasette/issues/1729#issuecomment-1114038259 | https://api.github.com/repos/simonw/datasette/issues/1729 | IC_kwDOBm6k_c5CZt_z | simonw 9599 | 2022-04-30T19:06:03Z | 2022-04-30T19:06:03Z | OWNER |
I think |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Implement ?_extra and new API design for TableView 1219385669 | |
898065011 | https://github.com/simonw/datasette/issues/1293#issuecomment-898065011 | https://api.github.com/repos/simonw/datasette/issues/1293 | IC_kwDOBm6k_c41h2Jz | simonw 9599 | 2021-08-13T00:36:30Z | 2021-08-13T00:36:30Z | OWNER |
Here's what it does for that: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show column metadata plus links for foreign keys on arbitrary query results 849978964 | |
1017998993 | https://github.com/simonw/datasette/issues/1608#issuecomment-1017998993 | https://api.github.com/repos/simonw/datasette/issues/1608 | IC_kwDOBm6k_c48rW6R | simonw 9599 | 2022-01-20T22:56:00Z | 2022-01-20T22:56:00Z | OWNER |
Correction! That tool DOES support that, as can be seen in their example configuration for their own documentation:
|
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Documentation should clarify /stable/ vs /latest/ 1109808154 | |
646216934 | https://github.com/simonw/datasette/issues/835#issuecomment-646216934 | https://api.github.com/repos/simonw/datasette/issues/835 | MDEyOklzc3VlQ29tbWVudDY0NjIxNjkzNA== | simonw 9599 | 2020-06-18T17:54:14Z | 2020-06-18T17:54:14Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for skipping CSRF checks on API posts 637363686 | |
501572149 | https://github.com/simonw/sqlite-utils/issues/24#issuecomment-501572149 | https://api.github.com/repos/simonw/sqlite-utils/issues/24 | MDEyOklzc3VlQ29tbWVudDUwMTU3MjE0OQ== | simonw 9599 | 2019-06-13T06:47:17Z | 2019-06-13T06:47:17Z | OWNER | @IgnoredAmbience this is now shipped in sqlite-utils 1.2 - documentation here: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Additional Column Constraints? 449818897 | |
626395103 | https://github.com/dogsheep/dogsheep-photos/issues/21#issuecomment-626395103 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/21 | MDEyOklzc3VlQ29tbWVudDYyNjM5NTEwMw== | simonw 9599 | 2020-05-10T21:51:36Z | 2020-05-10T21:51:36Z | MEMBER | @RhetTbull I tried that workaround and it turns out I'm getting this error on ALL of my photos now! It's weird: a few day ago this wasn't happening. Now it's happening to everything. I'm not sure what I might have changed. |
{ "total_count": 0, "+1": 0, "-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 | |
510559337 | https://github.com/simonw/datasette/issues/511#issuecomment-510559337 | https://api.github.com/repos/simonw/datasette/issues/511 | MDEyOklzc3VlQ29tbWVudDUxMDU1OTMzNw== | simonw 9599 | 2019-07-11T16:31:06Z | 2019-07-11T16:31:06Z | OWNER | @abdusco you mentioned Windows in #554 - can you confirm that Datasette is Windows compatible as of v0.29? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Get Datasette tests passing on Windows in GitHub Actions 456578474 | |
620971526 | https://github.com/simonw/datasette/issues/744#issuecomment-620971526 | https://api.github.com/repos/simonw/datasette/issues/744 | MDEyOklzc3VlQ29tbWVudDYyMDk3MTUyNg== | simonw 9599 | 2020-04-29T03:32:14Z | 2020-04-29T03:32:14Z | OWNER | @aborruso I think I have a branch with a fix - could you try it out? Install the new branch like this:
If this fixes your bug I'll merge that pull request! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
link_or_copy_directory() error - Invalid cross-device link 608058890 | |
622584433 | https://github.com/simonw/sqlite-utils/issues/103#issuecomment-622584433 | https://api.github.com/repos/simonw/sqlite-utils/issues/103 | MDEyOklzc3VlQ29tbWVudDYyMjU4NDQzMw== | simonw 9599 | 2020-05-01T21:57:52Z | 2020-05-01T21:57:52Z | OWNER | @b0b5h4rp13 I'm having trouble creating a test that triggers this bug. Could you share a chunk of code that replicates what you're seeing here? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite3.OperationalError: too many SQL variables in insert_all when using rows with varying numbers of columns 610517472 | |
379595253 | https://github.com/simonw/datasette/issues/185#issuecomment-379595253 | https://api.github.com/repos/simonw/datasette/issues/185 | MDEyOklzc3VlQ29tbWVudDM3OTU5NTI1Mw== | simonw 9599 | 2018-04-09T00:24:10Z | 2018-04-09T00:24:10Z | OWNER | @carlmjohnson in case you aren't following along with #189 I've shipped the first working prototype of sort-by-column - you can try it out here: https://datasette-issue-189-demo-2.now.sh/salaries-7859114-7859114/2017+Maryland+state+salaries?_search=university&_sort_desc=annual_salary |
{ "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Metadata should be a nested arbitrary KV store 299760684 | |
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 | |
635102675 | https://github.com/simonw/datasette/issues/758#issuecomment-635102675 | https://api.github.com/repos/simonw/datasette/issues/758 | MDEyOklzc3VlQ29tbWVudDYzNTEwMjY3NQ== | simonw 9599 | 2020-05-28T05:04:07Z | 2020-05-28T05:04:07Z | OWNER | @clausjuhl do you have any thoughts on what would be most useful for you in these JSON responses? The full |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Question: Access to immutable database-path 612382643 | |
640118802 | https://github.com/simonw/datasette/issues/215#issuecomment-640118802 | https://api.github.com/repos/simonw/datasette/issues/215 | MDEyOklzc3VlQ29tbWVudDY0MDExODgwMg== | simonw 9599 | 2020-06-06T21:12:41Z | 2020-06-06T21:12:41Z | OWNER | @clausjuhl your use-case there is now covered by custom pages from Datasette 0.41 https://datasette.readthedocs.io/en/stable/changelog.html#v0-41 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Allow plugins to define additional URL routes and views 314506669 | |
1186657003 | https://github.com/simonw/datasette/pull/1685#issuecomment-1186657003 | https://api.github.com/repos/simonw/datasette/issues/1685 | IC_kwDOBm6k_c5GuvLr | simonw 9599 | 2022-07-18T01:06:58Z | 2022-07-18T01:06:58Z | OWNER | @dependabot rebase |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Update jinja2 requirement from <3.1.0,>=2.10.3 to >=2.10.3,<3.2.0 1180778860 | |
1294034011 | https://github.com/simonw/datasette/pull/1839#issuecomment-1294034011 | https://api.github.com/repos/simonw/datasette/issues/1839 | IC_kwDOBm6k_c5NIWRb | simonw 9599 | 2022-10-27T20:34:37Z | 2022-10-27T20:34:37Z | OWNER | @dependabot rebase |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Bump black from 22.8.0 to 22.10.0 1401155623 | |
1689198368 | https://github.com/simonw/datasette/pull/2148#issuecomment-1689198368 | https://api.github.com/repos/simonw/datasette/issues/2148 | IC_kwDOBm6k_c5krx8g | simonw 9599 | 2023-08-23T02:57:53Z | 2023-08-23T02:57:53Z | OWNER | @dependabot rebase |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Bump sphinx, furo, blacken-docs dependencies 1859415334 | |
852673695 | https://github.com/simonw/datasette/pull/1352#issuecomment-852673695 | https://api.github.com/repos/simonw/datasette/issues/1352 | MDEyOklzc3VlQ29tbWVudDg1MjY3MzY5NQ== | simonw 9599 | 2021-06-02T02:52:26Z | 2021-06-02T02:52:26Z | OWNER | @dependabot recreate |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Bump black from 21.5b1 to 21.5b2 908276134 | |
943594712 | https://github.com/simonw/datasette/pull/1489#issuecomment-943594712 | https://api.github.com/repos/simonw/datasette/issues/1489 | IC_kwDOBm6k_c44PhzY | simonw 9599 | 2021-10-14T18:04:11Z | 2021-10-14T18:04:11Z | OWNER | @dependabot recreate |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Update pyyaml requirement from ~=5.3 to >=5.3,<7.0 1026379132 | |
1487998788 | https://github.com/simonw/datasette/pull/2014#issuecomment-1487998788 | https://api.github.com/repos/simonw/datasette/issues/2014 | IC_kwDOBm6k_c5YsQ9E | simonw 9599 | 2023-03-29T06:08:23Z | 2023-03-29T06:08:23Z | OWNER | @dependabot recreate |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Bump black from 22.12.0 to 23.1.0 1566081801 | |
1613290899 | https://github.com/simonw/datasette/pull/2077#issuecomment-1613290899 | https://api.github.com/repos/simonw/datasette/issues/2077 | IC_kwDOBm6k_c5gKN2T | simonw 9599 | 2023-06-29T14:32:16Z | 2023-06-29T14:32:16Z | OWNER | @dependabot recreate |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Bump furo from 2023.3.27 to 2023.5.20 1719759468 | |
1689127479 | https://github.com/simonw/datasette/pull/2148#issuecomment-1689127479 | https://api.github.com/repos/simonw/datasette/issues/2148 | IC_kwDOBm6k_c5krgo3 | simonw 9599 | 2023-08-23T01:26:53Z | 2023-08-23T01:26:53Z | OWNER | @dependabot recreate |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Bump sphinx, furo, blacken-docs dependencies 1859415334 | |
1328169472 | https://github.com/simonw/datasette/issues/1605#issuecomment-1328169472 | https://api.github.com/repos/simonw/datasette/issues/1605 | IC_kwDOBm6k_c5PKkIA | simonw 9599 | 2022-11-27T04:32:14Z | 2022-11-27T04:32:14Z | OWNER | @eyeseast I started work on that plugin: https://github.com/simonw/datasette-export |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Scripted exports 1108671952 | |
1030534868 | https://github.com/simonw/sqlite-utils/issues/398#issuecomment-1030534868 | https://api.github.com/repos/simonw/sqlite-utils/issues/398 | IC_kwDOCGYnMM49bLbU | simonw 9599 | 2022-02-05T06:03:38Z | 2022-02-05T06:03:38Z | OWNER | @eyeseast how do you usually insert geometries at the moment? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add SpatiaLite helpers to CLI 1124237013 | |
350519736 | https://github.com/simonw/datasette/issues/153#issuecomment-350519736 | https://api.github.com/repos/simonw/datasette/issues/153 | MDEyOklzc3VlQ29tbWVudDM1MDUxOTczNg== | simonw 9599 | 2017-12-10T02:06:01Z | 2017-12-10T02:06:01Z | OWNER | @ftrain Datasette 0.14 is now released with all of the above: https://github.com/simonw/datasette/releases/tag/0.14 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to customize presentation of specific columns in HTML view 276842536 |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [issue_comments] ( [html_url] TEXT, [issue_url] TEXT, [id] INTEGER PRIMARY KEY, [node_id] TEXT, [user] INTEGER REFERENCES [users]([id]), [created_at] TEXT, [updated_at] TEXT, [author_association] TEXT, [body] TEXT, [reactions] TEXT, [issue] INTEGER REFERENCES [issues]([id]) , [performed_via_github_app] TEXT); CREATE INDEX [idx_issue_comments_issue] ON [issue_comments] ([issue]); CREATE INDEX [idx_issue_comments_user] ON [issue_comments] ([user]);
issue >30