issue_comments
10,495 rows sorted by issue_url
This data as json, CSV (advanced)
issue >30
- Redesign default .json format 55
- ?_extra= support (draft) 49
- Upgrade to CodeMirror 6, add SQL autocomplete 48
- JavaScript plugin hooks mechanism similar to pluggy 47
- Port Datasette to ASGI 42
- Authentication (and permissions) as a core concept 40
- invoke_startup() is not run in some conditions, e.g. gunicorn/uvicorn workers, breaking lots of things 36
- await datasette.client.get(path) mechanism for executing internal requests 33
- Research: demonstrate if parallel SQL queries are worthwhile 32
- Ability to sort (and paginate) by column 31
- Server hang on parallel execution of queries to named in-memory databases 31
- Default API token authentication mechanism 30
- Port as many tests as possible to async def tests against ds_client 29
- link_or_copy_directory() error - Invalid cross-device link 28
- Add ?_extra= mechanism for requesting extra properties in JSON 27
- Export to CSV 27
- base_url configuration setting 27
- Documentation with recommendations on running Datasette in production without using Docker 27
- Support cross-database joins 26
- Ability for a canned query to write to the database 26
- table.transform() method for advanced alter table 26
- New pattern for views that return either JSON or HTML, available for plugins 26
- Proof of concept for Datasette on AWS Lambda with EFS 25
- Make it easier to insert geometries, with documentation and maybe code 25
- DeprecationWarning: pkg_resources is deprecated as an API 25
- Redesign register_output_renderer callback 24
- API explorer tool 24
- De-tangling Metadata before Datasette 1.0 24
- Stream all results for arbitrary SQL and canned queries 23
- Option for importing CSV data using the SQLite .import mechanism 23
- …
id | html_url | issue_url ▼ | node_id | user | created_at | updated_at | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
804539729 | https://github.com/simonw/datasette/issues/163#issuecomment-804539729 | https://api.github.com/repos/simonw/datasette/issues/163 | MDEyOklzc3VlQ29tbWVudDgwNDUzOTcyOQ== | mroswell 192568 | 2021-03-23T02:41:14Z | 2021-03-23T02:41:14Z | CONTRIBUTOR | I'm visiting old issues for context while learning datasette. Let me know if okay to make the occasional comment like this one. querystring argument now located at: https://docs.datasette.io/en/latest/settings.html#sql-time-limit-ms |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document the querystring argument for setting a different time limit 279547886 | |
804540869 | https://github.com/simonw/datasette/issues/163#issuecomment-804540869 | https://api.github.com/repos/simonw/datasette/issues/163 | MDEyOklzc3VlQ29tbWVudDgwNDU0MDg2OQ== | simonw 9599 | 2021-03-23T02:44:33Z | 2021-03-23T02:44:33Z | OWNER | Comments welcome! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document the querystring argument for setting a different time limit 279547886 | |
1031463789 | https://github.com/simonw/datasette/pull/1631#issuecomment-1031463789 | https://api.github.com/repos/simonw/datasette/issues/1631 | IC_kwDOBm6k_c49euNt | codecov[bot] 22429695 | 2022-02-07T13:21:48Z | 2022-02-07T13:21:48Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #1631 +/-=======================================
Coverage 92.19% 92.19% Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Update pytest-asyncio requirement from <0.17,>=0.10 to >=0.10,<0.19 1125973221 | |
1032032686 | https://github.com/simonw/datasette/issues/1632#issuecomment-1032032686 | https://api.github.com/repos/simonw/datasette/issues/1632 | IC_kwDOBm6k_c49g5Gu | simonw 9599 | 2022-02-07T23:16:10Z | 2022-02-07T23:16:10Z | OWNER | I found this bug while trying to get the following to work:
I want this to create any missing database files on startup out of that literal list of |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette one.db one.db opens database twice, as one and one_2 1126604194 | |
1032034015 | https://github.com/simonw/datasette/issues/1632#issuecomment-1032034015 | https://api.github.com/repos/simonw/datasette/issues/1632 | IC_kwDOBm6k_c49g5bf | simonw 9599 | 2022-02-07T23:17:57Z | 2022-02-07T23:17:57Z | OWNER | I'm going to fix this in a 0.60.2 bug fix release. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette one.db one.db opens database twice, as one and one_2 1126604194 | |
1032036525 | https://github.com/simonw/datasette/issues/1632#issuecomment-1032036525 | https://api.github.com/repos/simonw/datasette/issues/1632 | IC_kwDOBm6k_c49g6Ct | simonw 9599 | 2022-02-07T23:19:59Z | 2022-02-07T23:19:59Z | OWNER | I'm going to fix this in the CLI code itself, rather than fixing it in the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette one.db one.db opens database twice, as one and one_2 1126604194 | |
1032037391 | https://github.com/simonw/datasette/issues/1632#issuecomment-1032037391 | https://api.github.com/repos/simonw/datasette/issues/1632 | IC_kwDOBm6k_c49g6QP | simonw 9599 | 2022-02-07T23:21:07Z | 2022-02-07T23:21:07Z | OWNER | For the record, here's the code that picks the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette one.db one.db opens database twice, as one and one_2 1126604194 | |
1032050489 | https://github.com/simonw/datasette/issues/1632#issuecomment-1032050489 | https://api.github.com/repos/simonw/datasette/issues/1632 | IC_kwDOBm6k_c49g9c5 | simonw 9599 | 2022-02-07T23:39:11Z | 2022-02-07T23:42:08Z | OWNER | That implementation broke on Python 3.6 - which is still a supported Python version for the 0.60.x branch - ```
I could say that I'm going to use a different idiom for order-preserving de-duplication from this StackOverflow instead. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette one.db one.db opens database twice, as one and one_2 1126604194 | |
1032057472 | https://github.com/simonw/datasette/issues/1632#issuecomment-1032057472 | https://api.github.com/repos/simonw/datasette/issues/1632 | IC_kwDOBm6k_c49g_KA | simonw 9599 | 2022-02-07T23:50:01Z | 2022-02-07T23:50:01Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette one.db one.db opens database twice, as one and one_2 1126604194 | ||
1034222709 | https://github.com/simonw/datasette/issues/1633#issuecomment-1034222709 | https://api.github.com/repos/simonw/datasette/issues/1633 | IC_kwDOBm6k_c49pPx1 | henrikek 6613091 | 2022-02-09T21:47:02Z | 2022-02-09T21:47:02Z | NONE | Is this the correct solution to add the base_url row to url_builder.py? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
base_url or prefix does not work with _exact match 1129052172 | |
1111955628 | https://github.com/simonw/datasette/issues/1633#issuecomment-1111955628 | https://api.github.com/repos/simonw/datasette/issues/1633 | IC_kwDOBm6k_c5CRxis | henrikek 6613091 | 2022-04-28T09:12:56Z | 2022-04-28T09:12:56Z | NONE | I have verified that the problem with base_url still exists in the latest version 0.61.1. I would need some guidance if my code change suggestion is correct or if base_url should be included in some other code? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
base_url or prefix does not work with _exact match 1129052172 | |
1035664412 | https://github.com/simonw/datasette/issues/1634#issuecomment-1035664412 | https://api.github.com/repos/simonw/datasette/issues/1634 | IC_kwDOBm6k_c49uvwc | simonw 9599 | 2022-02-11T00:09:18Z | 2022-02-11T00:09:18Z | OWNER | Starting it with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Update Dockerfile generated by `datasette publish` 1131295060 | |
1035664928 | https://github.com/simonw/datasette/issues/1634#issuecomment-1035664928 | https://api.github.com/repos/simonw/datasette/issues/1634 | IC_kwDOBm6k_c49uv4g | simonw 9599 | 2022-02-11T00:10:07Z | 2022-02-11T00:10:23Z | OWNER | Could also bump this up to Python 3.10: https://github.com/simonw/datasette/blob/5619069968ab39fd44c44a1888965e361c6f7fb9/Dockerfile#L1 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Update Dockerfile generated by `datasette publish` 1131295060 | |
1035667060 | https://github.com/simonw/datasette/issues/1634#issuecomment-1035667060 | https://api.github.com/repos/simonw/datasette/issues/1634 | IC_kwDOBm6k_c49uwZ0 | simonw 9599 | 2022-02-11T00:13:22Z | 2022-02-11T00:13:22Z | OWNER | Looks like |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Update Dockerfile generated by `datasette publish` 1131295060 | |
1065334891 | https://github.com/simonw/datasette/issues/1634#issuecomment-1065334891 | https://api.github.com/repos/simonw/datasette/issues/1634 | IC_kwDOBm6k_c4_f7hr | dholth 208018 | 2022-03-11T17:38:08Z | 2022-03-11T17:38:08Z | NONE | I noticed the image was large when using fly. Is it possible to use a -slim base? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Update Dockerfile generated by `datasette publish` 1131295060 | |
1192862243 | https://github.com/simonw/datasette/issues/1636#issuecomment-1192862243 | https://api.github.com/repos/simonw/datasette/issues/1636 | IC_kwDOBm6k_c5HGaIj | simonw 9599 | 2022-07-22T19:10:48Z | 2022-07-22T19:11:01Z | OWNER | I keep running into a need for this. Every time I create a new plugin that defines a new permission I wish there was a clean way to grant that permission to new users without installing some other permissions plugin. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"permissions" propery in metadata for configuring arbitrary permissions 1138008042 | |
1192862767 | https://github.com/simonw/datasette/issues/1636#issuecomment-1192862767 | https://api.github.com/repos/simonw/datasette/issues/1636 | IC_kwDOBm6k_c5HGaQv | simonw 9599 | 2022-07-22T19:11:41Z | 2022-07-22T19:11:41Z | OWNER | I keep shipping plugins that set a special hook just so the root user can try them out. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"permissions" propery in metadata for configuring arbitrary permissions 1138008042 | |
1334666806 | https://github.com/simonw/datasette/issues/1636#issuecomment-1334666806 | https://api.github.com/repos/simonw/datasette/issues/1636 | IC_kwDOBm6k_c5PjWY2 | simonw 9599 | 2022-12-02T01:58:40Z | 2022-12-02T02:00:53Z | OWNER | Current design:
https://docs.datasette.io/en/stable/authentication.html#controlling-access-to-specific-databases It's actually controlling the following permissions:
There's also a special case for allowing SQL queries,at the instance and database level:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"permissions" propery in metadata for configuring arbitrary permissions 1138008042 | |
1334673179 | https://github.com/simonw/datasette/issues/1636#issuecomment-1334673179 | https://api.github.com/repos/simonw/datasette/issues/1636 | IC_kwDOBm6k_c5PjX8b | simonw 9599 | 2022-12-02T02:07:20Z | 2022-12-02T04:27:07Z | OWNER | So the new mechanism needs to extend that to handle all of the other permissions as well. The simplest design I can think of is this (here illustrated using YAML): ```yaml instance-level permissions - give every logged in user the debug menu:permissions: debug-menu: id: * databases: content: # Allow bob to create-table in the content database permissions: create-table: id: bob ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"permissions" propery in metadata for configuring arbitrary permissions 1138008042 | |
1334757597 | https://github.com/simonw/datasette/issues/1636#issuecomment-1334757597 | https://api.github.com/repos/simonw/datasette/issues/1636 | IC_kwDOBm6k_c5Pjsjd | simonw 9599 | 2022-12-02T04:42:35Z | 2022-12-02T04:42:35Z | OWNER | Should I call this key Some options:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"permissions" propery in metadata for configuring arbitrary permissions 1138008042 | |
1334758766 | https://github.com/simonw/datasette/issues/1636#issuecomment-1334758766 | https://api.github.com/repos/simonw/datasette/issues/1636 | IC_kwDOBm6k_c5Pjs1u | simonw 9599 | 2022-12-02T04:45:16Z | 2022-12-02T04:45:16Z | OWNER | Also, this is another thing which should live in |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"permissions" propery in metadata for configuring arbitrary permissions 1138008042 | |
1334759315 | https://github.com/simonw/datasette/issues/1636#issuecomment-1334759315 | https://api.github.com/repos/simonw/datasette/issues/1636 | IC_kwDOBm6k_c5Pjs-T | simonw 9599 | 2022-12-02T04:46:32Z | 2022-12-02T04:46:32Z | OWNER | Thankfully all of the logic for this already lives in just one place: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"permissions" propery in metadata for configuring arbitrary permissions 1138008042 | |
1341854373 | https://github.com/simonw/datasette/issues/1636#issuecomment-1341854373 | https://api.github.com/repos/simonw/datasette/issues/1636 | IC_kwDOBm6k_c5P-xKl | simonw 9599 | 2022-12-08T01:43:35Z | 2022-12-08T01:43:35Z | OWNER | I'm going to write the documentation for this first. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"permissions" propery in metadata for configuring arbitrary permissions 1138008042 | |
1343440504 | https://github.com/simonw/datasette/issues/1636#issuecomment-1343440504 | https://api.github.com/repos/simonw/datasette/issues/1636 | IC_kwDOBm6k_c5QE0Z4 | simonw 9599 | 2022-12-08T22:10:28Z | 2022-12-08T22:10:48Z | OWNER | What if you want to grant You should be able to do that by putting that in the root Also: there are some permissions like Ideally the implementation would spot those on startup and refuse to start the server, with a helpful error message. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"permissions" propery in metadata for configuring arbitrary permissions 1138008042 | |
1343446071 | https://github.com/simonw/datasette/issues/1636#issuecomment-1343446071 | https://api.github.com/repos/simonw/datasette/issues/1636 | IC_kwDOBm6k_c5QE1w3 | simonw 9599 | 2022-12-08T22:16:17Z | 2022-12-08T22:16:17Z | OWNER | First draft of documentation: https://datasette--1938.org.readthedocs.build/en/1938/authentication.html#other-permissions-in-metadata |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"permissions" propery in metadata for configuring arbitrary permissions 1138008042 | |
1343715746 | https://github.com/simonw/datasette/issues/1636#issuecomment-1343715746 | https://api.github.com/repos/simonw/datasette/issues/1636 | IC_kwDOBm6k_c5QF3mi | simonw 9599 | 2022-12-09T01:27:41Z | 2022-12-09T01:27:58Z | OWNER | I may need to consult this file to figure out if the permission that is being checked can act at the database/table/instance level: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"permissions" propery in metadata for configuring arbitrary permissions 1138008042 | |
1347647298 | https://github.com/simonw/datasette/issues/1636#issuecomment-1347647298 | https://api.github.com/repos/simonw/datasette/issues/1636 | IC_kwDOBm6k_c5QU3dC | simonw 9599 | 2022-12-13T02:08:46Z | 2022-12-13T02:08:46Z | OWNER | A bunch of the work for this just landed - in particular the new scheme is now documented (even though it doesn't work yet): https://docs.datasette.io/en/latest/authentication.html#other-permissions-in-metadata |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"permissions" propery in metadata for configuring arbitrary permissions 1138008042 | |
1347648326 | https://github.com/simonw/datasette/issues/1636#issuecomment-1347648326 | https://api.github.com/repos/simonw/datasette/issues/1636 | IC_kwDOBm6k_c5QU3tG | simonw 9599 | 2022-12-13T02:10:02Z | 2022-12-13T02:10:02Z | OWNER | The implementation for this will go here: https://github.com/simonw/datasette/blob/8bf06a76b51bc9ace7cf72cf0cca8f1da7704ea7/datasette/default_permissions.py#L81-L83 Here's the start of the tests (currently marked as |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"permissions" propery in metadata for configuring arbitrary permissions 1138008042 | |
1347655074 | https://github.com/simonw/datasette/issues/1636#issuecomment-1347655074 | https://api.github.com/repos/simonw/datasette/issues/1636 | IC_kwDOBm6k_c5QU5Wi | simonw 9599 | 2022-12-13T02:21:04Z | 2022-12-13T02:21:23Z | OWNER | The thing I'm stuck on at the moment is how to implement it such that an Maybe the algorithm when
So everything is keyed off the incoming |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"permissions" propery in metadata for configuring arbitrary permissions 1138008042 | |
349874709 | https://github.com/simonw/datasette/issues/164#issuecomment-349874709 | https://api.github.com/repos/simonw/datasette/issues/164 | MDEyOklzc3VlQ29tbWVudDM0OTg3NDcwOQ== | simonw 9599 | 2017-12-07T06:22:10Z | 2017-12-07T06:22:10Z | OWNER | Example usage:
Generates a
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette skeleton command for kick-starting database and table metadata 280013907 | |
349874844 | https://github.com/simonw/datasette/issues/164#issuecomment-349874844 | https://api.github.com/repos/simonw/datasette/issues/164 | MDEyOklzc3VlQ29tbWVudDM0OTg3NDg0NA== | simonw 9599 | 2017-12-07T06:22:58Z | 2017-12-07T06:22:58Z | OWNER | This metadata doesn't yet do anything - need to implement #165 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette skeleton command for kick-starting database and table metadata 280013907 | |
804541064 | https://github.com/simonw/datasette/issues/164#issuecomment-804541064 | https://api.github.com/repos/simonw/datasette/issues/164 | MDEyOklzc3VlQ29tbWVudDgwNDU0MTA2NA== | mroswell 192568 | 2021-03-23T02:45:12Z | 2021-03-23T02:45:12Z | CONTRIBUTOR | "datasette skeleton" feature removed #476 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette skeleton command for kick-starting database and table metadata 280013907 | |
1059636420 | https://github.com/simonw/datasette/issues/1640#issuecomment-1059636420 | https://api.github.com/repos/simonw/datasette/issues/1640 | IC_kwDOBm6k_c4_KMTE | simonw 9599 | 2022-03-05T01:13:26Z | 2022-03-05T01:13:26Z | OWNER | Hah, this is certainly unexpected. It looks like this is the code in question: https://github.com/simonw/datasette/blob/a6ff123de5464806441f6a6f95145c9a83b7f20b/datasette/utils/asgi.py#L259-L266 You're right: it assumes that the file it is serving won't change length while it is serving it. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support static assets where file length may change, e.g. logs 1148725876 | |
1059638778 | https://github.com/simonw/datasette/issues/1640#issuecomment-1059638778 | https://api.github.com/repos/simonw/datasette/issues/1640 | IC_kwDOBm6k_c4_KM36 | simonw 9599 | 2022-03-05T01:19:00Z | 2022-03-05T01:19:00Z | OWNER | The reason I implemented it like this was to support things like the Here's the code that hooks it up to the URL resolver: Which uses this function: One option here would be to support a workaround that looks something like this:
The URL routing code could then look out for that It's a bit of a cludge, but it would be pretty straight-forward to implement. Would that work for you @broccolihighkicks? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support static assets where file length may change, e.g. logs 1148725876 | |
1049879118 | https://github.com/simonw/datasette/issues/1641#issuecomment-1049879118 | https://api.github.com/repos/simonw/datasette/issues/1641 | IC_kwDOBm6k_c4-k-JO | fgregg 536941 | 2022-02-24T13:49:26Z | 2022-02-24T13:49:26Z | CONTRIBUTOR | maybe worth considering adding buttons for paren, asterisk, etc. under the input text box on mobile? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Tweak mobile keyboard settings 1149310456 | |
1059635969 | https://github.com/simonw/datasette/issues/1642#issuecomment-1059635969 | https://api.github.com/repos/simonw/datasette/issues/1642 | IC_kwDOBm6k_c4_KMMB | simonw 9599 | 2022-03-05T01:11:17Z | 2022-03-05T01:11:17Z | OWNER |
Neither does Closing this as can't reproduce. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Dependency issue with asgiref and uvicorn 1152072027 | |
1059633902 | https://github.com/simonw/datasette/issues/1645#issuecomment-1059633902 | https://api.github.com/repos/simonw/datasette/issues/1645 | IC_kwDOBm6k_c4_KLru | simonw 9599 | 2022-03-05T01:03:06Z | 2022-03-05T01:03:06Z | OWNER | I agree: this is bad. Ideally, content served from
Datasette half-implemented the first of these: if you view source on https://latest.datasette.io/ you'll see it links to I had forgotten I had implemented this! Here is how it is calculated: So |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Sensible `cache-control` headers for static assets, including those served by plugins 1154399841 | |
1059634412 | https://github.com/simonw/datasette/issues/1645#issuecomment-1059634412 | https://api.github.com/repos/simonw/datasette/issues/1645 | IC_kwDOBm6k_c4_KLzs | simonw 9599 | 2022-03-05T01:04:53Z | 2022-03-05T01:04:53Z | OWNER | The existing |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Sensible `cache-control` headers for static assets, including those served by plugins 1154399841 | |
1059634688 | https://github.com/simonw/datasette/issues/1645#issuecomment-1059634688 | https://api.github.com/repos/simonw/datasette/issues/1645 | IC_kwDOBm6k_c4_KL4A | simonw 9599 | 2022-03-05T01:06:08Z | 2022-03-05T01:06:08Z | OWNER | It sounds like you can workaround this with Varnish configuration for the moment, but I'm going to bump this up the list of things to fix - it's particularly relevant now as I'd like to get a solution in place before Datasette 1.0, since it's likely to be beneficial to plugins and hence should be part of the stable, documented plugin interface. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Sensible `cache-control` headers for static assets, including those served by plugins 1154399841 | |
1061355871 | https://github.com/simonw/datasette/issues/1645#issuecomment-1061355871 | https://api.github.com/repos/simonw/datasette/issues/1645 | IC_kwDOBm6k_c4_QwFf | simonw 9599 | 2022-03-08T02:59:28Z | 2022-03-08T02:59:28Z | OWNER | Hah, found a TODO about this: https://github.com/simonw/datasette/blob/c5791156d92615f25696ba93dae5bb2dcc192c98/datasette/app.py#L997-L999 |
{ "total_count": 1, "+1": 0, "-1": 0, "laugh": 1, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Sensible `cache-control` headers for static assets, including those served by plugins 1154399841 | |
1172930092 | https://github.com/simonw/datasette/issues/1646#issuecomment-1172930092 | https://api.github.com/repos/simonw/datasette/issues/1646 | IC_kwDOBm6k_c5F6X4s | mustafa0x 1473102 | 2022-07-02T17:12:18Z | 2022-07-02T17:12:18Z | NONE | I'm affected by this as well. Would be nice to be able to pass in an extension, eg |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Configuration directory mode does not pick up other file extensions than .db 1157182254 | |
1172970910 | https://github.com/simonw/datasette/issues/1646#issuecomment-1172970910 | https://api.github.com/repos/simonw/datasette/issues/1646 | IC_kwDOBm6k_c5F6h2e | simonw 9599 | 2022-07-02T22:13:13Z | 2022-07-02T22:17:16Z | OWNER | Adding I don't think it's worth having a Here: https://github.com/simonw/datasette-upload-dbs/blob/81510ef4f0004371a3adda18100936b430535cc1/datasette_upload_dbs/init.py#L41-L50 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Configuration directory mode does not pick up other file extensions than .db 1157182254 | |
1272149176 | https://github.com/simonw/datasette/issues/1646#issuecomment-1272149176 | https://api.github.com/repos/simonw/datasette/issues/1646 | IC_kwDOBm6k_c5L03S4 | simonw 9599 | 2022-10-07T23:06:17Z | 2022-10-07T23:06:17Z | OWNER | Updated documentation: https://docs.datasette.io/en/latest/settings.html#configuration-directory-mode |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Configuration directory mode does not pick up other file extensions than .db 1157182254 | |
1059804577 | https://github.com/simonw/datasette/issues/1647#issuecomment-1059804577 | https://api.github.com/repos/simonw/datasette/issues/1647 | IC_kwDOBm6k_c4_K1Wh | simonw 9599 | 2022-03-05T17:49:46Z | 2022-03-05T17:49:46Z | OWNER | My best guess is that this is an undocumented change in SQLite 3.38 - I get that test failure with that SQLite version. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test failures with SQLite 3.37.0+ due to column affinity case 1160407071 | |
1059807598 | https://github.com/simonw/datasette/issues/1647#issuecomment-1059807598 | https://api.github.com/repos/simonw/datasette/issues/1647 | IC_kwDOBm6k_c4_K2Fu | simonw 9599 | 2022-03-05T18:06:56Z | 2022-03-05T18:08:00Z | OWNER | Had a look through the commits in https://github.com/sqlite/sqlite/compare/version-3.37.2...version-3.38.0 but couldn't see anything obvious that might have caused this. Really wish I had a good mechanism for running the test suite against different SQLite versions! May have to revisit this old trick: https://til.simonwillison.net/sqlite/ld-preload |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test failures with SQLite 3.37.0+ due to column affinity case 1160407071 | |
1059819628 | https://github.com/simonw/datasette/issues/1647#issuecomment-1059819628 | https://api.github.com/repos/simonw/datasette/issues/1647 | IC_kwDOBm6k_c4_K5Bs | simonw 9599 | 2022-03-05T19:28:54Z | 2022-03-05T19:28:54Z | OWNER | OK, using that trick worked for testing this:
Then inside that container:
For each version of SQLite I wanted to test I needed to figure out the tarball URL - for example, for Then to build it (the After some trial and error I proved that those tests passed with 3.36.0:
3.37.0cd /tmp wget https://www.sqlite.org/src/tarball/bd41822c/SQLite-bd41822c.tar.gz tar -xzvf SQLite-bd41822c.tar.gz cd SQLite-bd41822c CPPFLAGS="-DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_RTREE=1" ./configure make cd /tmp/datasette LD_PRELOAD=/tmp/SQLite-bd41822c/.libs/libsqlite3.so pytest tests/test_internals_database.py ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test failures with SQLite 3.37.0+ due to column affinity case 1160407071 | |
1059821674 | https://github.com/simonw/datasette/issues/1647#issuecomment-1059821674 | https://api.github.com/repos/simonw/datasette/issues/1647 | IC_kwDOBm6k_c4_K5hq | simonw 9599 | 2022-03-05T19:44:32Z | 2022-03-05T19:44:32Z | OWNER | I thought I'd need to introduce https://dirty-equals.helpmanual.io/types/string/ to help write tests for this, but I think I've found a good alternative that doesn't need a new dependency. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test failures with SQLite 3.37.0+ due to column affinity case 1160407071 | |
1059823119 | https://github.com/simonw/datasette/issues/1647#issuecomment-1059823119 | https://api.github.com/repos/simonw/datasette/issues/1647 | IC_kwDOBm6k_c4_K54P | simonw 9599 | 2022-03-05T19:56:27Z | 2022-03-05T19:56:27Z | OWNER | Updated this TIL with extra patterns I figured out: https://til.simonwillison.net/sqlite/ld-preload |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test failures with SQLite 3.37.0+ due to column affinity case 1160407071 | |
1059823151 | https://github.com/simonw/datasette/pull/1648#issuecomment-1059823151 | https://api.github.com/repos/simonw/datasette/issues/1648 | IC_kwDOBm6k_c4_K54v | codecov[bot] 22429695 | 2022-03-05T19:56:41Z | 2022-03-07T15:38:08Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #1648 +/-==========================================
+ Coverage 92.03% 92.05% +0.02% | Impacted Files | Coverage Δ | |
|---|---|---|
| datasette/url_builder.py | Continue to review full report at Codecov.
|
{ "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 | |
1060016221 | https://github.com/simonw/datasette/pull/1648#issuecomment-1060016221 | https://api.github.com/repos/simonw/datasette/issues/1648 | IC_kwDOBm6k_c4_LpBd | simonw 9599 | 2022-03-06T18:37:59Z | 2022-03-06T18:37:59Z | OWNER | Change of plan: based on extensive conversations on Twitter - see https://github.com/simonw/datasette/issues/1439#issuecomment-1059851259 - I'm going to try a variant of this which is basically percent-encoding but with a hyphen instead of a percent symbol. Reason being that the current scheme doesn't handle the case of |
{ "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 | |
1060034562 | https://github.com/simonw/datasette/pull/1648#issuecomment-1060034562 | https://api.github.com/repos/simonw/datasette/issues/1648 | IC_kwDOBm6k_c4_LtgC | simonw 9599 | 2022-03-06T20:36:12Z | 2022-03-06T20:36:12Z | OWNER | Updated documentation: |
{ "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 | |
1060044592 | https://github.com/simonw/datasette/pull/1648#issuecomment-1060044592 | https://api.github.com/repos/simonw/datasette/issues/1648 | IC_kwDOBm6k_c4_Lv8w | simonw 9599 | 2022-03-06T21:42:35Z | 2022-03-06T21:42:35Z | OWNER | For consistency, I'm going to change how https://github.com/simonw/datasette/blob/de810f49cc57a4f88e4a1553d26c579253ce4531/datasette/utils/init.py#L114-L116 I'm going to change those to use dash-encoding instead. I considered looking for |
{ "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 | |
1060056510 | https://github.com/simonw/datasette/pull/1648#issuecomment-1060056510 | https://api.github.com/repos/simonw/datasette/issues/1648 | IC_kwDOBm6k_c4_Ly2- | simonw 9599 | 2022-03-06T23:02:05Z | 2022-03-06T23:04:24Z | OWNER | Just spotted this: https://github.com/simonw/datasette/blob/de810f49cc57a4f88e4a1553d26c579253ce4531/datasette/views/base.py#L203-L216 Maybe the db name should use dash encoding too? If so, relevant code includes this bit: |
{ "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 | |
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 | |
1060067031 | https://github.com/simonw/datasette/pull/1648#issuecomment-1060067031 | https://api.github.com/repos/simonw/datasette/issues/1648 | IC_kwDOBm6k_c4_L1bX | simonw 9599 | 2022-03-06T23:50:40Z | 2022-03-06T23:58:31Z | OWNER | I may have to do extra work here
Might be able to solve that like so:
|
{ "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 | |
1060021753 | https://github.com/simonw/datasette/pull/1649#issuecomment-1060021753 | https://api.github.com/repos/simonw/datasette/issues/1649 | IC_kwDOBm6k_c4_LqX5 | codecov[bot] 22429695 | 2022-03-06T19:13:09Z | 2022-03-06T19:13:09Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #1649 +/-=======================================
Coverage 92.03% 92.03% | Impacted Files | Coverage Δ | |
|---|---|---|
| datasette/utils/__init__.py | Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add /opt/homebrew to where spatialite extension can be found 1160677684 | |
350026183 | https://github.com/simonw/datasette/issues/165#issuecomment-350026183 | https://api.github.com/repos/simonw/datasette/issues/165 | MDEyOklzc3VlQ29tbWVudDM1MDAyNjE4Mw== | simonw 9599 | 2017-12-07T16:47:46Z | 2017-12-07T16:47:46Z | OWNER | Here's an example metadata.json file illustrating custom per-database and per- table metadata:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
metadata.json support for per-database and per-table information 280014287 | |
350026452 | https://github.com/simonw/datasette/issues/165#issuecomment-350026452 | https://api.github.com/repos/simonw/datasette/issues/165 | MDEyOklzc3VlQ29tbWVudDM1MDAyNjQ1Mg== | simonw 9599 | 2017-12-07T16:48:34Z | 2017-12-07T16:48:34Z | OWNER | Needs documentation, see #166 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
metadata.json support for per-database and per-table information 280014287 | |
1060836262 | https://github.com/simonw/datasette/issues/1650#issuecomment-1060836262 | https://api.github.com/repos/simonw/datasette/issues/1650 | IC_kwDOBm6k_c4_OxOm | simonw 9599 | 2022-03-07T15:52:09Z | 2022-03-07T15:52:09Z | OWNER | This is a bit tricky. I tried this, sending a redirect only if a 404 happens: ```diff diff --git a/datasette/app.py b/datasette/app.py index 8c5480c..420664c 100644 --- a/datasette/app.py +++ b/datasette/app.py @@ -1211,6 +1211,10 @@ class DatasetteRouter: return await self.handle_404(request, send)
I was expecting that to redirect to this page:
But instead it took me to another 404:
This is because that URL contains both a %-escaped |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Implement redirects from old % encoding to new dash encoding 1160750713 | |
1060863311 | https://github.com/simonw/datasette/issues/1650#issuecomment-1060863311 | https://api.github.com/repos/simonw/datasette/issues/1650 | IC_kwDOBm6k_c4_O31P | simonw 9599 | 2022-03-07T16:13:17Z | 2022-03-07T16:13:17Z | OWNER | This doesn't seem to work. https://latest.datasette.io/fixtures/table%2Fwith%2Fslashes.csv should be redirecting now that this is deployed - which it is, because https://latest.datasette.io/-/versions shows 644d25d1de78a36b105cca479e7b3e4375a6eadc - but I'm not getting that redirect. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Implement redirects from old % encoding to new dash encoding 1160750713 | |
1060864823 | https://github.com/simonw/datasette/issues/1650#issuecomment-1060864823 | https://api.github.com/repos/simonw/datasette/issues/1650 | IC_kwDOBm6k_c4_O4M3 | simonw 9599 | 2022-03-07T16:14:33Z | 2022-03-07T16:14:33Z | OWNER | Same problem here: https://fivethirtyeight.datasettes.com/fivethirtyeight/ahca-2Dpolls%2Fahca_polls should redirect but doesn't. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Implement redirects from old % encoding to new dash encoding 1160750713 | |
1061038414 | https://github.com/simonw/datasette/issues/1650#issuecomment-1061038414 | https://api.github.com/repos/simonw/datasette/issues/1650 | IC_kwDOBm6k_c4_PilO | simonw 9599 | 2022-03-07T19:14:04Z | 2022-03-07T19:14:04Z | OWNER | The problem seems to be that |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Implement redirects from old % encoding to new dash encoding 1160750713 | |
1061041034 | https://github.com/simonw/datasette/issues/1650#issuecomment-1061041034 | https://api.github.com/repos/simonw/datasette/issues/1650 | IC_kwDOBm6k_c4_PjOK | simonw 9599 | 2022-03-07T19:16:51Z | 2022-03-07T19:16:51Z | OWNER | Here's the problem: https://github.com/simonw/datasette/blob/020effe47bf89f35182960a9645f2383a42ebd54/datasette/utils/init.py#L1173-L1175 Which is called here: So |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Implement redirects from old % encoding to new dash encoding 1160750713 | |
1060853226 | https://github.com/simonw/datasette/issues/1651#issuecomment-1060853226 | https://api.github.com/repos/simonw/datasette/issues/1651 | IC_kwDOBm6k_c4_O1Xq | simonw 9599 | 2022-03-07T16:04:26Z | 2022-03-07T16:04:26Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Get rid of the no-longer necessary ?_format=json hack for tables called x.json 1161584460 | ||
1061053094 | https://github.com/simonw/datasette/issues/1651#issuecomment-1061053094 | https://api.github.com/repos/simonw/datasette/issues/1651 | IC_kwDOBm6k_c4_PmKm | simonw 9599 | 2022-03-07T19:29:01Z | 2022-03-07T19:29:01Z | OWNER | I found an obscure bug in #1650 which I can fix with this too. The following test should pass:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Get rid of the no-longer necessary ?_format=json hack for tables called x.json 1161584460 | |
1061169528 | https://github.com/simonw/datasette/issues/1651#issuecomment-1061169528 | https://api.github.com/repos/simonw/datasette/issues/1651 | IC_kwDOBm6k_c4_QCl4 | simonw 9599 | 2022-03-07T21:47:01Z | 2022-03-07T21:47:01Z | OWNER | Wow, this code is difficult to follow! Look at this bit inside the That's modifying the arguments that were extracted from the path by the routing regular expressions to have |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Get rid of the no-longer necessary ?_format=json hack for tables called x.json 1161584460 | |
1061170897 | https://github.com/simonw/datasette/issues/1651#issuecomment-1061170897 | https://api.github.com/repos/simonw/datasette/issues/1651 | IC_kwDOBm6k_c4_QC7R | simonw 9599 | 2022-03-07T21:48:35Z | 2022-03-07T21:48:35Z | OWNER | My attempts to simplify |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Get rid of the no-longer necessary ?_format=json hack for tables called x.json 1161584460 | |
1061223822 | https://github.com/simonw/datasette/issues/1651#issuecomment-1061223822 | https://api.github.com/repos/simonw/datasette/issues/1651 | IC_kwDOBm6k_c4_QP2O | simonw 9599 | 2022-03-07T22:54:54Z | 2022-03-07T22:54:54Z | OWNER | I'm going to do a review of how URL routing works at the moment for the various views. I edited down the full list a bit - these are the most relevant:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Get rid of the no-longer necessary ?_format=json hack for tables called x.json 1161584460 | |
1061359915 | https://github.com/simonw/datasette/issues/1651#issuecomment-1061359915 | https://api.github.com/repos/simonw/datasette/issues/1651 | IC_kwDOBm6k_c4_QxEr | simonw 9599 | 2022-03-08T03:08:14Z | 2022-03-08T03:09:24Z | OWNER | A lot of the code complexity here is caused by It would be good to get rid of that subclassed shared code, figure out how to do it via a utility function instead. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Get rid of the no-longer necessary ?_format=json hack for tables called x.json 1161584460 | |
1067382442 | https://github.com/simonw/datasette/issues/1651#issuecomment-1067382442 | https://api.github.com/repos/simonw/datasette/issues/1651 | IC_kwDOBm6k_c4_nvaq | simonw 9599 | 2022-03-14T22:59:10Z | 2022-03-14T22:59:10Z | OWNER | This work is now blocked on: - https://github.com/simonw/datasette/issues/1657 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Get rid of the no-longer necessary ?_format=json hack for tables called x.json 1161584460 | |
1068319530 | https://github.com/simonw/datasette/issues/1651#issuecomment-1068319530 | https://api.github.com/repos/simonw/datasette/issues/1651 | IC_kwDOBm6k_c4_rUMq | simonw 9599 | 2022-03-15T18:25:42Z | 2022-03-15T18:25:42Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Get rid of the no-longer necessary ?_format=json hack for tables called x.json 1161584460 | ||
1061148807 | https://github.com/simonw/datasette/issues/1653#issuecomment-1061148807 | https://api.github.com/repos/simonw/datasette/issues/1653 | IC_kwDOBm6k_c4_P9iH | simonw 9599 | 2022-03-07T21:21:23Z | 2022-03-07T21:21:23Z | OWNER | This is currently blocked on the fact that Datasette doesn't have a mechanism for sorting by more than one column: - #197 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism to default a table to sorting by multiple columns 1161937073 | |
1061150672 | https://github.com/simonw/datasette/issues/1653#issuecomment-1061150672 | https://api.github.com/repos/simonw/datasette/issues/1653 | IC_kwDOBm6k_c4_P9_Q | simonw 9599 | 2022-03-07T21:23:39Z | 2022-03-07T21:23:39Z | OWNER | There may be a short-term fix for this: table view could start accepting a That fragment could then be pre-populated in |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism to default a table to sorting by multiple columns 1161937073 | |
1061181089 | https://github.com/simonw/datasette/issues/1654#issuecomment-1061181089 | https://api.github.com/repos/simonw/datasette/issues/1654 | IC_kwDOBm6k_c4_QFah | simonw 9599 | 2022-03-07T22:01:38Z | 2022-03-07T22:01:38Z | OWNER | I'm going to use the widely adopted Contributor Covenant: https://www.contributor-covenant.org/version/1/4/code-of-conduct/ |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Adopt a code of conduct 1161969891 | |
1061181530 | https://github.com/simonw/datasette/issues/1654#issuecomment-1061181530 | https://api.github.com/repos/simonw/datasette/issues/1654 | IC_kwDOBm6k_c4_QFha | simonw 9599 | 2022-03-07T22:02:06Z | 2022-03-07T22:02:06Z | OWNER | https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/adding-a-code-of-conduct-to-your-project says this should be called |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Adopt a code of conduct 1161969891 | |
1061182132 | https://github.com/simonw/datasette/issues/1654#issuecomment-1061182132 | https://api.github.com/repos/simonw/datasette/issues/1654 | IC_kwDOBm6k_c4_QFq0 | simonw 9599 | 2022-03-07T22:02:43Z | 2022-03-07T22:02:43Z | OWNER | Neat, GitHub have a template for this https://github.com/simonw/datasette/community/code-of-conduct/new?template=contributor-covenant |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Adopt a code of conduct 1161969891 | |
1061184206 | https://github.com/simonw/datasette/issues/1654#issuecomment-1061184206 | https://api.github.com/repos/simonw/datasette/issues/1654 | IC_kwDOBm6k_c4_QGLO | simonw 9599 | 2022-03-07T22:04:51Z | 2022-03-07T22:04:51Z | OWNER | I'm going to add this to the main Datasette repo (done) and the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Adopt a code of conduct 1161969891 | |
1061197133 | https://github.com/simonw/datasette/issues/1654#issuecomment-1061197133 | https://api.github.com/repos/simonw/datasette/issues/1654 | IC_kwDOBm6k_c4_QJVN | simonw 9599 | 2022-03-07T22:19:35Z | 2022-03-07T22:19:35Z | OWNER | Also now live on https://datasette.io |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Adopt a code of conduct 1161969891 | |
1062445113 | https://github.com/simonw/datasette/issues/1655#issuecomment-1062445113 | https://api.github.com/repos/simonw/datasette/issues/1655 | IC_kwDOBm6k_c4_U6A5 | simonw 9599 | 2022-03-09T01:01:24Z | 2022-03-09T01:01:24Z | OWNER | https://labordata.bunkum.us/-/settings shows Any thoughts on how Datasette could handle this kind of thing better? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
query result page is using 400mb of browser memory 40x size of html page and 400x size of csv data 1163369515 | |
1062450649 | https://github.com/simonw/datasette/issues/1655#issuecomment-1062450649 | https://api.github.com/repos/simonw/datasette/issues/1655 | IC_kwDOBm6k_c4_U7XZ | fgregg 536941 | 2022-03-09T01:10:46Z | 2022-03-09T01:10:46Z | CONTRIBUTOR | i increased the max_returned_row, because I have some scripts that get CSVs from this site, and this makes doing pagination of CSVs less annoying for many cases. i know that's streaming csvs is something you are hoping to address in 1.0. let me know if there's anything i can do to help with that. as for what if anything can be done about the size of the dom, I don't have any ideas right now, but i'll poke around. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
query result page is using 400mb of browser memory 40x size of html page and 400x size of csv data 1163369515 | |
1258166572 | https://github.com/simonw/datasette/issues/1655#issuecomment-1258166572 | https://api.github.com/repos/simonw/datasette/issues/1655 | IC_kwDOBm6k_c5K_hks | fgregg 536941 | 2022-09-26T14:57:04Z | 2022-09-26T14:57:04Z | CONTRIBUTOR | I think that paginating, even in javascript, could be very helpful. Maybe render json or csv into the page and let javascript loading that into the dom? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
query result page is using 400mb of browser memory 40x size of html page and 400x size of csv data 1163369515 | |
1761630595 | https://github.com/simonw/datasette/issues/1655#issuecomment-1761630595 | https://api.github.com/repos/simonw/datasette/issues/1655 | IC_kwDOBm6k_c5pAFmD | yejiyang 6262071 | 2023-10-13T14:37:48Z | 2023-10-13T14:37:48Z | NONE | Hi @fgregg, I came across this issue and found your setup at labordata.bunkum.us can help me with a research project at https://database.zeropm.eu/. I really like the approach here when dealing with a custom SQL query returning more than 1000 rows: 1) At the table in HTML page, only first 1000 rows displayed; 2) When click the "Download this data as a CSV Spreadsheet(All Rows)" button, a csv with ALL ROWS (could be > 100 Mb) get downloaded. I am trying to repeat the setup but have yet to be successful so far. What I tried: 1) copy the query.html & table.html templates from this github repo and use it my project 2) use the same datasette version 1.0a2. Do you know what else I should try to set it correctly? I appreciate your help. @simonw I would like to use this opportunity to thank you for developing & maintaining such an amazing project. I introduce your datasette to several projects in my institute. I am also interested in your cloud version. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
query result page is using 400mb of browser memory 40x size of html page and 400x size of csv data 1163369515 | |
1766994810 | https://github.com/simonw/datasette/issues/1655#issuecomment-1766994810 | https://api.github.com/repos/simonw/datasette/issues/1655 | IC_kwDOBm6k_c5pUjN6 | fgregg 536941 | 2023-10-17T19:01:59Z | 2023-10-17T19:01:59Z | CONTRIBUTOR | hi @yejiyang, have your tried using my fork of datasette: https://github.com/fgregg/datasette/tree/no_limit_csv_publish |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
query result page is using 400mb of browser memory 40x size of html page and 400x size of csv data 1163369515 | |
1767133832 | https://github.com/simonw/datasette/issues/1655#issuecomment-1767133832 | https://api.github.com/repos/simonw/datasette/issues/1655 | IC_kwDOBm6k_c5pVFKI | yejiyang 6262071 | 2023-10-17T20:37:18Z | 2023-10-17T21:12:48Z | NONE | @fgregg Thanks for your reply. I tried to use your fork branch
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
query result page is using 400mb of browser memory 40x size of html page and 400x size of csv data 1163369515 | |
1767219901 | https://github.com/simonw/datasette/issues/1655#issuecomment-1767219901 | https://api.github.com/repos/simonw/datasette/issues/1655 | IC_kwDOBm6k_c5pVaK9 | fgregg 536941 | 2023-10-17T21:29:03Z | 2023-10-17T21:29:03Z | CONTRIBUTOR | @yejiyang why don’t you move this discussion to my fork to spare simon’s notifications |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
query result page is using 400mb of browser memory 40x size of html page and 400x size of csv data 1163369515 | |
1767248394 | https://github.com/simonw/datasette/issues/1655#issuecomment-1767248394 | https://api.github.com/repos/simonw/datasette/issues/1655 | IC_kwDOBm6k_c5pVhIK | yejiyang 6262071 | 2023-10-17T21:53:17Z | 2023-10-17T21:53:17Z | NONE | @fgregg, I am happy to do that and just could not find a way to create issues at your fork repo. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
query result page is using 400mb of browser memory 40x size of html page and 400x size of csv data 1163369515 | |
1068154183 | https://github.com/simonw/datasette/pull/1656#issuecomment-1068154183 | https://api.github.com/repos/simonw/datasette/issues/1656 | IC_kwDOBm6k_c4_qr1H | codecov[bot] 22429695 | 2022-03-15T15:55:34Z | 2022-03-15T15:55:34Z | NONE | Codecov Report
```diff @@ Coverage Diff @@ main #1656 +/-=======================================
Coverage 92.06% 92.06% Continue to review full report at Codecov.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Update pytest requirement from <7.1.0,>=5.2.2 to >=5.2.2,<7.2.0 1168357113 | |
1067381556 | https://github.com/simonw/datasette/issues/1657#issuecomment-1067381556 | https://api.github.com/repos/simonw/datasette/issues/1657 | IC_kwDOBm6k_c4_nvM0 | simonw 9599 | 2022-03-14T22:57:27Z | 2022-03-14T22:57:45Z | OWNER | The problem with the dash encoding mechanism is that it turns out dashes are used in a LOT of existing Datasette instances - much of https://fivethirtyeight.datasettes.com/fivethirtyeight for example, and even https://datasette.io/ itself: https://datasette.io/dogsheep-index It's pretty ugly to force all of those to change to their dash-encoded equivalent - and in fact it broke https://datasette.io/ in a subtle way: I'm going to try using |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Tilde encoding: use ~ instead of - for dash-encoding 1168995756 | |
1067382232 | https://github.com/simonw/datasette/issues/1657#issuecomment-1067382232 | https://api.github.com/repos/simonw/datasette/issues/1657 | IC_kwDOBm6k_c4_nvXY | simonw 9599 | 2022-03-14T22:58:47Z | 2022-03-14T22:58:47Z | OWNER | Asked about this on Twitter:
Replies so far seem like it should be OK - Apache has supported this for home directories for a couple of decades now without any problems. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Tilde encoding: use ~ instead of - for dash-encoding 1168995756 | |
1067413691 | https://github.com/simonw/datasette/issues/1657#issuecomment-1067413691 | https://api.github.com/repos/simonw/datasette/issues/1657 | IC_kwDOBm6k_c4_n3C7 | simonw 9599 | 2022-03-14T23:37:42Z | 2022-03-14T23:37:42Z | OWNER | Relevant: https://datatracker.ietf.org/doc/html/rfc3986#section-2.1 ```
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Tilde encoding: use ~ instead of - for dash-encoding 1168995756 | |
1067414156 | https://github.com/simonw/datasette/issues/1657#issuecomment-1067414156 | https://api.github.com/repos/simonw/datasette/issues/1657 | IC_kwDOBm6k_c4_n3KM | simonw 9599 | 2022-03-14T23:38:41Z | 2022-03-14T23:38:41Z | OWNER | And in https://datatracker.ietf.org/doc/html/rfc3986#section-2.3 "Unreserved Characters":
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Tilde encoding: use ~ instead of - for dash-encoding 1168995756 | |
1067423720 | https://github.com/simonw/datasette/issues/1657#issuecomment-1067423720 | https://api.github.com/repos/simonw/datasette/issues/1657 | IC_kwDOBm6k_c4_n5fo | simonw 9599 | 2022-03-14T23:59:56Z | 2022-03-14T23:59:56Z | OWNER | Updated test:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Tilde encoding: use ~ instead of - for dash-encoding 1168995756 | |
1068125636 | https://github.com/simonw/datasette/issues/1657#issuecomment-1068125636 | https://api.github.com/repos/simonw/datasette/issues/1657 | IC_kwDOBm6k_c4_qk3E | simonw 9599 | 2022-03-15T15:30:54Z | 2022-03-15T15:30:54Z | OWNER | I've made a real mess of this. I'm going to revert Datasette |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Tilde encoding: use ~ instead of - for dash-encoding 1168995756 | |
1068126821 | https://github.com/simonw/datasette/issues/1657#issuecomment-1068126821 | https://api.github.com/repos/simonw/datasette/issues/1657 | IC_kwDOBm6k_c4_qlJl | simonw 9599 | 2022-03-15T15:31:54Z | 2022-03-15T15:31:54Z | OWNER | The state I had got to prior to that revert is in https://github.com/simonw/datasette/tree/issue-1657-wip |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Tilde encoding: use ~ instead of - for dash-encoding 1168995756 | |
1068148013 | https://github.com/simonw/datasette/issues/1657#issuecomment-1068148013 | https://api.github.com/repos/simonw/datasette/issues/1657 | IC_kwDOBm6k_c4_qqUt | simonw 9599 | 2022-03-15T15:50:15Z | 2022-03-15T15:50:15Z | OWNER | The thing that broke everything was this change: I'm going to bring back the horrible |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Tilde encoding: use ~ instead of - for dash-encoding 1168995756 | |
1068181623 | https://github.com/simonw/datasette/issues/1657#issuecomment-1068181623 | https://api.github.com/repos/simonw/datasette/issues/1657 | IC_kwDOBm6k_c4_qyh3 | simonw 9599 | 2022-03-15T16:18:23Z | 2022-03-15T16:18:23Z | OWNER | Moving this to a PR. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Tilde encoding: use ~ instead of - for dash-encoding 1168995756 | |
1068296042 | https://github.com/simonw/datasette/issues/1657#issuecomment-1068296042 | https://api.github.com/repos/simonw/datasette/issues/1657 | IC_kwDOBm6k_c4_rOdq | simonw 9599 | 2022-03-15T18:05:54Z | 2022-03-15T18:05:54Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Tilde encoding: use ~ instead of - for dash-encoding 1168995756 | ||
1068306916 | https://github.com/simonw/datasette/issues/1657#issuecomment-1068306916 | https://api.github.com/repos/simonw/datasette/issues/1657 | IC_kwDOBm6k_c4_rRHk | simonw 9599 | 2022-03-15T18:15:11Z | 2022-03-15T18:15:11Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Tilde encoding: use ~ instead of - for dash-encoding 1168995756 | ||
1068318454 | https://github.com/simonw/datasette/issues/1657#issuecomment-1068318454 | https://api.github.com/repos/simonw/datasette/issues/1657 | IC_kwDOBm6k_c4_rT72 | simonw 9599 | 2022-03-15T18:25:11Z | 2022-03-15T18:25:11Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Tilde encoding: use ~ instead of - for dash-encoding 1168995756 | ||
1068138578 | https://github.com/simonw/datasette/issues/1658#issuecomment-1068138578 | https://api.github.com/repos/simonw/datasette/issues/1658 | IC_kwDOBm6k_c4_qoBS | simonw 9599 | 2022-03-15T15:42:49Z | 2022-03-15T15:42:49Z | OWNER | Easiest way to do this was with three reverts, then cherry-pick back the code of conduct. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Revert main to version that passes tests 1169840669 |
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]);
user >30