issue_comments
8,358 rows where author_association = "OWNER" sorted by updated_at descending
This data as json, CSV (advanced)
user 1
- simonw 4,086
id | html_url | issue_url | node_id | user | created_at | updated_at ▲ | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
778812684 | https://github.com/simonw/sqlite-utils/issues/230#issuecomment-778812684 | https://api.github.com/repos/simonw/sqlite-utils/issues/230 | MDEyOklzc3VlQ29tbWVudDc3ODgxMjY4NA== | simonw 9599 | 2021-02-14T17:45:16Z | 2021-02-14T17:45:16Z | OWNER | Running this could take any CSV (or TSV) file and automatically detect the delimiter. If no header row is detected it could add
(Using This could be called |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
--sniff option for sniffing delimiters 808008305 | |
778812050 | https://github.com/simonw/sqlite-utils/issues/228#issuecomment-778812050 | https://api.github.com/repos/simonw/sqlite-utils/issues/228 | MDEyOklzc3VlQ29tbWVudDc3ODgxMjA1MA== | simonw 9599 | 2021-02-14T17:41:30Z | 2021-02-14T17:41:30Z | OWNER | I just spotted that |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
--no-headers option for CSV and TSV 807437089 | |
778811934 | https://github.com/simonw/sqlite-utils/issues/228#issuecomment-778811934 | https://api.github.com/repos/simonw/sqlite-utils/issues/228 | MDEyOklzc3VlQ29tbWVudDc3ODgxMTkzNA== | simonw 9599 | 2021-02-14T17:40:48Z | 2021-02-14T17:40:48Z | OWNER | Another pattern that might be useful is to generate a header that is just "unknown1,unknown2,unknown3" for each of the columns in the rest of the file. This makes it easy to e.g. facet-explore within Datasette to figure out the correct names, then use I needed to do that for the https://bl.iro.bl.uk/work/ns/3037474a-761c-456d-a00c-9ef3c6773f4c example. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
--no-headers option for CSV and TSV 807437089 | |
778511347 | https://github.com/simonw/sqlite-utils/issues/228#issuecomment-778511347 | https://api.github.com/repos/simonw/sqlite-utils/issues/228 | MDEyOklzc3VlQ29tbWVudDc3ODUxMTM0Nw== | simonw 9599 | 2021-02-12T23:27:50Z | 2021-02-12T23:27:50Z | OWNER | For the moment, a workaround can be to
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
--no-headers option for CSV and TSV 807437089 | |
778510528 | https://github.com/simonw/sqlite-utils/issues/131#issuecomment-778510528 | https://api.github.com/repos/simonw/sqlite-utils/issues/131 | MDEyOklzc3VlQ29tbWVudDc3ODUxMDUyOA== | simonw 9599 | 2021-02-12T23:25:06Z | 2021-02-12T23:25:06Z | OWNER | If |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils insert: options for column types 675753042 | |
778508887 | https://github.com/simonw/sqlite-utils/issues/131#issuecomment-778508887 | https://api.github.com/repos/simonw/sqlite-utils/issues/131 | MDEyOklzc3VlQ29tbWVudDc3ODUwODg4Nw== | simonw 9599 | 2021-02-12T23:20:11Z | 2021-02-12T23:20:11Z | OWNER | Annoyingly Particularly annoying because I attempted to remove the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
sqlite-utils insert: options for column types 675753042 | |
778349672 | https://github.com/simonw/sqlite-utils/issues/228#issuecomment-778349672 | https://api.github.com/repos/simonw/sqlite-utils/issues/228 | MDEyOklzc3VlQ29tbWVudDc3ODM0OTY3Mg== | simonw 9599 | 2021-02-12T18:00:43Z | 2021-02-12T18:00:43Z | OWNER | I could combine this with #131 to allow types to be specified in addition to column names. Probably need an option that means "ignore the existing heading row and use this one instead". |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
--no-headers option for CSV and TSV 807437089 | |
778349142 | https://github.com/simonw/sqlite-utils/issues/227#issuecomment-778349142 | https://api.github.com/repos/simonw/sqlite-utils/issues/227 | MDEyOklzc3VlQ29tbWVudDc3ODM0OTE0Mg== | simonw 9599 | 2021-02-12T17:59:35Z | 2021-02-12T17:59:35Z | OWNER | It looks like I can at least bump this size limit up to the maximum allowed by Python - I'll take a look at that. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Error reading csv files with large column data 807174161 | |
777901052 | https://github.com/simonw/datasette/issues/1221#issuecomment-777901052 | https://api.github.com/repos/simonw/datasette/issues/1221 | MDEyOklzc3VlQ29tbWVudDc3NzkwMTA1Mg== | simonw 9599 | 2021-02-12T01:09:54Z | 2021-02-12T01:09:54Z | OWNER | I also tested this manually. I generated certificate files like so:
This created Then I started Datasette like this:
And exercise it using
Note that without the ``` /tmp % curl 'https://localhost:8001/_memory.json' curl: (60) SSL certificate problem: Invalid certificate chain More details here: https://curl.haxx.se/docs/sslcerts.html curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support SSL/TLS directly 806849424 | |
777887190 | https://github.com/simonw/datasette/issues/1221#issuecomment-777887190 | https://api.github.com/repos/simonw/datasette/issues/1221 | MDEyOklzc3VlQ29tbWVudDc3Nzg4NzE5MA== | simonw 9599 | 2021-02-12T00:29:18Z | 2021-02-12T00:29:18Z | OWNER | I can use this recipe to start a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support SSL/TLS directly 806849424 | |
777883452 | https://github.com/simonw/datasette/issues/1221#issuecomment-777883452 | https://api.github.com/repos/simonw/datasette/issues/1221 | MDEyOklzc3VlQ29tbWVudDc3Nzg4MzQ1Mg== | simonw 9599 | 2021-02-12T00:19:30Z | 2021-02-12T00:19:40Z | OWNER | Uvicorn supports these options: https://www.uvicorn.org/#command-line-options ``` --ssl-keyfile TEXT SSL key file --ssl-certfile TEXT SSL certificate file --ssl-keyfile-password TEXT SSL keyfile password --ssl-version INTEGER SSL version to use (see stdlib ssl module's) [default: 2] --ssl-cert-reqs INTEGER Whether client certificate is required (see stdlib ssl module's) [default: 0] --ssl-ca-certs TEXT CA certificates file
--ssl-ciphers TEXT Ciphers to use (see stdlib ssl module's)
[default: TLSv1]
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support SSL/TLS directly 806849424 | |
777178728 | https://github.com/simonw/datasette/issues/1200#issuecomment-777178728 | https://api.github.com/repos/simonw/datasette/issues/1200 | MDEyOklzc3VlQ29tbWVudDc3NzE3ODcyOA== | simonw 9599 | 2021-02-11T03:13:59Z | 2021-02-11T03:13:59Z | OWNER | I came up with the need for this while playing with this tool: https://calands.datasettes.com/calands?sql=select%0D%0A++AsGeoJSON(geometry)%2C+*%0D%0Afrom%0D%0A++CPAD_2020a_SuperUnits%0D%0Awhere%0D%0A++PARK_NAME+like+'%25mini%25'+and%0D%0A++Intersects(GeomFromGeoJSON(%3Afreedraw)%2C+geometry)+%3D+1%0D%0A++and+CPAD_2020a_SuperUnits.rowid+in+(%0D%0A++++select%0D%0A++++++rowid%0D%0A++++from%0D%0A++++++SpatialIndex%0D%0A++++where%0D%0A++++++f_table_name+%3D+'CPAD_2020a_SuperUnits'%0D%0A++++++and+search_frame+%3D+GeomFromGeoJSON(%3Afreedraw)%0D%0A++)&freedraw={"type"%3A"MultiPolygon"%2C"coordinates"%3A[[[[-122.42202758789064%2C37.82280243352759]%2C[-122.39868164062501%2C37.823887203271454]%2C[-122.38220214843751%2C37.81846319511331]%2C[-122.35061645507814%2C37.77071473849611]%2C[-122.34924316406251%2C37.74465712069939]%2C[-122.37258911132814%2C37.703380457832374]%2C[-122.39044189453125%2C37.690340943717715]%2C[-122.41241455078126%2C37.680559803205135]%2C[-122.44262695312501%2C37.67295135774715]%2C[-122.47283935546876%2C37.67295135774715]%2C[-122.52502441406251%2C37.68382032669382]%2C[-122.53463745117189%2C37.6892542140253]%2C[-122.54699707031251%2C37.690340943717715]%2C[-122.55798339843751%2C37.72945260537781]%2C[-122.54287719726564%2C37.77831314799672]%2C[-122.49893188476564%2C37.81303878836991]%2C[-122.46185302734376%2C37.82822612280363]%2C[-122.42889404296876%2C37.82822612280363]%2C[-122.42202758789064%2C37.82280243352759]]]]} - before I fixed https://github.com/simonw/datasette-leaflet-geojson/issues/16 it was loading a LOT of maps, which felt bad. I wanted to be able to link people to that page with a hard limit on the number of rows displayed on that page. It's mainly to guard against unexpected behaviour from limit-less queries though. It's not a very high priority feature! |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_size=10 option for the arbitrary query page would be useful 792890765 | |
775442039 | https://github.com/simonw/datasette/issues/1219#issuecomment-775442039 | https://api.github.com/repos/simonw/datasette/issues/1219 | MDEyOklzc3VlQ29tbWVudDc3NTQ0MjAzOQ== | simonw 9599 | 2021-02-08T20:39:52Z | 2021-02-08T22:13:00Z | OWNER | This comment helped me find a pattern for running Scalene against the Datasette test suite: https://github.com/emeryberger/scalene/issues/70#issuecomment-755245858
Current thread 0x0000000110c1edc0 (most recent call first): File "/Users/simon/Dropbox/Development/datasette/datasette/utils/init.py", line 553 in detect_json1 File "/Users/simon/Dropbox/Development/datasette/datasette/filters.py", line 168 in Filters File "/Users/simon/Dropbox/Development/datasette/datasette/filters.py", line 94 in <module> File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed File "<frozen importlib._bootstrap_external>", line 783 in exec_module File "<frozen importlib._bootstrap>", line 671 in _load_unlocked File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 991 in _find_and_load File "/Users/simon/Dropbox/Development/datasette/datasette/views/table.py", line 27 in <module> File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed File "<frozen importlib._bootstrap_external>", line 783 in exec_module File "<frozen importlib._bootstrap>", line 671 in _load_unlocked File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 991 in _find_and_load File "/Users/simon/Dropbox/Development/datasette/datasette/app.py", line 42 in <module> File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed File "<frozen importlib._bootstrap_external>", line 783 in exec_module File "<frozen importlib._bootstrap>", line 671 in _load_unlocked File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 991 in _find_and_load File "/Users/simon/Dropbox/Development/datasette/tests/test_api.py", line 1 in <module> File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/assertion/rewrite.py", line 170 in exec_module File "<frozen importlib._bootstrap>", line 671 in _load_unlocked File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 991 in _find_and_load File "<frozen importlib._bootstrap>", line 1014 in _gcd_import File "/usr/local/opt/python@3.8/Frameworks/Python.framework/Versions/3.8/lib/python3.8/importlib/init.py", line 127 in import_module File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/pathlib.py", line 520 in import_path File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/python.py", line 552 in _importtestmodule File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/python.py", line 484 in _getobj File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/python.py", line 288 in obj File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/python.py", line 500 in _inject_setup_module_fixture File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/python.py", line 487 in collect File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/runner.py", line 324 in <lambda> File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/runner.py", line 294 in from_call File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/runner.py", line 324 in pytest_make_collect_report File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/callers.py", line 187 in _multicall File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/manager.py", line 84 in <lambda> File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/manager.py", line 93 in _hookexec File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/hooks.py", line 286 in call File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/runner.py", line 441 in collect_one_node File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/main.py", line 768 in genitems File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/main.py", line 771 in genitems File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/main.py", line 568 in _perform_collect File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/main.py", line 516 in perform_collect File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/main.py", line 306 in pytest_collection File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/callers.py", line 187 in _multicall File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/manager.py", line 84 in <lambda> File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/manager.py", line 93 in _hookexec File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/hooks.py", line 286 in call File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/main.py", line 295 in _main File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/main.py", line 240 in wrap_session File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/main.py", line 289 in pytest_cmdline_main File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/callers.py", line 187 in _multicall File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/manager.py", line 84 in <lambda> File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/manager.py", line 93 in _hookexec File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/hooks.py", line 286 in call File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/config/init.py", line 157 in main File "run_tests.py", line 3 in <module> File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/scalene/scalene_profiler.py", line 1525 in main File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/scalene/main.py", line 7 in main File "/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/scalene/main.py", line 14 in <module> File "/usr/local/opt/python@3.8/Frameworks/Python.framework/Versions/3.8/lib/python3.8/runpy.py", line 87 in _run_code File "/usr/local/opt/python@3.8/Frameworks/Python.framework/Versions/3.8/lib/python3.8/runpy.py", line 194 in _run_module_as_main Scalene error: received signal SIGSEGV ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Try profiling Datasette using scalene 803929694 | |
775497449 | https://github.com/simonw/datasette/issues/1219#issuecomment-775497449 | https://api.github.com/repos/simonw/datasette/issues/1219 | MDEyOklzc3VlQ29tbWVudDc3NTQ5NzQ0OQ== | simonw 9599 | 2021-02-08T22:11:34Z | 2021-02-08T22:11:34Z | OWNER | https://github.com/emeryberger/scalene/issues/110 reports a "received signal SIGSEGV" error that was fixed by upgrading to the latest Scalene version, but I'm running that already. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Try profiling Datasette using scalene 803929694 | |
774373829 | https://github.com/simonw/sqlite-utils/issues/223#issuecomment-774373829 | https://api.github.com/repos/simonw/sqlite-utils/issues/223 | MDEyOklzc3VlQ29tbWVudDc3NDM3MzgyOQ== | simonw 9599 | 2021-02-06T01:39:47Z | 2021-02-06T01:39:47Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
--delimiter option for CSV import 788527932 | ||
772796111 | https://github.com/simonw/datasette/issues/1216#issuecomment-772796111 | https://api.github.com/repos/simonw/datasette/issues/1216 | MDEyOklzc3VlQ29tbWVudDc3Mjc5NjExMQ== | simonw 9599 | 2021-02-03T20:20:48Z | 2021-02-03T20:20:48Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
/-/databases should reflect connection order, not alphabetical order 800669347 | ||
772001787 | https://github.com/simonw/datasette/issues/1214#issuecomment-772001787 | https://api.github.com/repos/simonw/datasette/issues/1214 | MDEyOklzc3VlQ29tbWVudDc3MjAwMTc4Nw== | simonw 9599 | 2021-02-02T21:28:53Z | 2021-02-02T21:28:53Z | OWNER | Fix is now live on https://latest.datasette.io/fixtures/searchable?_search=terry - clearing "terry" and re-submitting the form now works as expected. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Re-submitting filter form duplicates _x querystring arguments 799693777 | |
771992628 | https://github.com/simonw/datasette/issues/1214#issuecomment-771992628 | https://api.github.com/repos/simonw/datasette/issues/1214 | MDEyOklzc3VlQ29tbWVudDc3MTk5MjYyOA== | simonw 9599 | 2021-02-02T21:15:18Z | 2021-02-02T21:15:18Z | OWNER | The cause of this bug is form fields which begin with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Re-submitting filter form duplicates _x querystring arguments 799693777 | |
771992025 | https://github.com/simonw/datasette/issues/1214#issuecomment-771992025 | https://api.github.com/repos/simonw/datasette/issues/1214 | MDEyOklzc3VlQ29tbWVudDc3MTk5MjAyNQ== | simonw 9599 | 2021-02-02T21:14:16Z | 2021-02-02T21:14:16Z | OWNER | As a result, navigating to https://github-to-sqlite.dogsheep.net/github/labels?_search=help and clearing out the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Re-submitting filter form duplicates _x querystring arguments 799693777 | |
771976561 | https://github.com/simonw/datasette/issues/1212#issuecomment-771976561 | https://api.github.com/repos/simonw/datasette/issues/1212 | MDEyOklzc3VlQ29tbWVudDc3MTk3NjU2MQ== | simonw 9599 | 2021-02-02T20:53:27Z | 2021-02-02T20:53:27Z | OWNER | It would be great if we could get |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Tests are very slow. 797651831 | |
771975941 | https://github.com/simonw/datasette/issues/1212#issuecomment-771975941 | https://api.github.com/repos/simonw/datasette/issues/1212 | MDEyOklzc3VlQ29tbWVudDc3MTk3NTk0MQ== | simonw 9599 | 2021-02-02T20:52:36Z | 2021-02-02T20:52:36Z | OWNER | 37 minutes, wow! They're a little slow for me (4-5 minutes perhaps) but not nearly that bad. Thanks for running that profile. I think you're right: figuring out how to use more session scopes would definitely help. The Note that I'd be delighted if you explored this issue further, especially the option of using |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Tests are very slow. 797651831 | |
771968675 | https://github.com/simonw/datasette/issues/1213#issuecomment-771968675 | https://api.github.com/repos/simonw/datasette/issues/1213 | MDEyOklzc3VlQ29tbWVudDc3MTk2ODY3NQ== | simonw 9599 | 2021-02-02T20:41:55Z | 2021-02-02T20:41:55Z | OWNER | So maybe I could a special response header which ASGI middleware can pick up that means "Don't attempt to gzip this, just stream it through". |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
gzip support for HTML (and JSON) responses 799663959 | |
771968177 | https://github.com/simonw/datasette/issues/1213#issuecomment-771968177 | https://api.github.com/repos/simonw/datasette/issues/1213 | MDEyOklzc3VlQ29tbWVudDc3MTk2ODE3Nw== | simonw 9599 | 2021-02-02T20:41:13Z | 2021-02-02T20:41:13Z | OWNER | Starlette accumulates the full response body in a
``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
gzip support for HTML (and JSON) responses 799663959 | |
771965281 | https://github.com/simonw/datasette/issues/1213#issuecomment-771965281 | https://api.github.com/repos/simonw/datasette/issues/1213 | MDEyOklzc3VlQ29tbWVudDc3MTk2NTI4MQ== | simonw 9599 | 2021-02-02T20:37:08Z | 2021-02-02T20:39:24Z | OWNER | Starlette's gzip middleware implementation is here: https://github.com/encode/starlette/blob/0.14.2/starlette/middleware/gzip.py |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
gzip support for HTML (and JSON) responses 799663959 | |
769534187 | https://github.com/simonw/datasette/issues/1207#issuecomment-769534187 | https://api.github.com/repos/simonw/datasette/issues/1207 | MDEyOklzc3VlQ29tbWVudDc2OTUzNDE4Nw== | simonw 9599 | 2021-01-29T02:37:19Z | 2021-01-29T02:37:19Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document the Datasette(..., pdb=True) testing pattern 793881756 | ||
769455370 | https://github.com/simonw/datasette/issues/1209#issuecomment-769455370 | https://api.github.com/repos/simonw/datasette/issues/1209 | MDEyOklzc3VlQ29tbWVudDc2OTQ1NTM3MA== | simonw 9599 | 2021-01-28T23:00:21Z | 2021-01-28T23:00:21Z | OWNER | Good catch on the workaround here. The root problem is that Is this a bug? I think it is - because the documented behaviour on https://docs.datasette.io/en/stable/internals.html#get-database-name is this:
Since the new behaviour differs from what was in the documentation I'm going to treat this as a bug and fix it. |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
v0.54 500 error from sql query in custom template; code worked in v0.53; found a workaround 795367402 | |
769453074 | https://github.com/simonw/datasette/issues/1205#issuecomment-769453074 | https://api.github.com/repos/simonw/datasette/issues/1205 | MDEyOklzc3VlQ29tbWVudDc2OTQ1MzA3NA== | simonw 9599 | 2021-01-28T22:54:49Z | 2021-01-28T22:55:02Z | OWNER | I also checked that the following works:
Sure enough, it results in the following Datasette homepage - thanks to #509 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rename /:memory: to /_memory 793027837 | |
769452084 | https://github.com/simonw/datasette/issues/1205#issuecomment-769452084 | https://api.github.com/repos/simonw/datasette/issues/1205 | MDEyOklzc3VlQ29tbWVudDc2OTQ1MjA4NA== | simonw 9599 | 2021-01-28T22:52:23Z | 2021-01-28T22:52:23Z | OWNER | Here are the redirect tests: https://github.com/simonw/datasette/blob/1600d2a3ec3ada1f6fb5b1eb73bdaeccb5f80530/tests/test_api.py#L635-L648 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rename /:memory: to /_memory 793027837 | |
769442165 | https://github.com/simonw/datasette/issues/1205#issuecomment-769442165 | https://api.github.com/repos/simonw/datasette/issues/1205 | MDEyOklzc3VlQ29tbWVudDc2OTQ0MjE2NQ== | simonw 9599 | 2021-01-28T22:30:16Z | 2021-01-28T22:30:27Z | OWNER | I'm going to do this, with redirects from |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rename /:memory: to /_memory 793027837 | |
769274591 | https://github.com/simonw/datasette/issues/1210#issuecomment-769274591 | https://api.github.com/repos/simonw/datasette/issues/1210 | MDEyOklzc3VlQ29tbWVudDc2OTI3NDU5MQ== | simonw 9599 | 2021-01-28T18:10:02Z | 2021-01-28T18:10:02Z | OWNER | That definitely sounds like a bug! Can you provide a copy of your |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Immutable Database w/ Canned Queries 796234313 | |
767823684 | https://github.com/simonw/datasette/issues/1208#issuecomment-767823684 | https://api.github.com/repos/simonw/datasette/issues/1208 | MDEyOklzc3VlQ29tbWVudDc2NzgyMzY4NA== | simonw 9599 | 2021-01-26T20:58:51Z | 2021-01-26T20:58:51Z | OWNER | This is a good catch - I've been lazy about this, but you're right that it's an issue that needs cleaning up. Would be very happy to apply a PR, thanks! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
A lot of open(file) functions are used without a context manager thus producing ResourceWarning: unclosed file <_io.TextIOWrapper 794554881 | |
767762551 | https://github.com/simonw/datasette/issues/1151#issuecomment-767762551 | https://api.github.com/repos/simonw/datasette/issues/1151 | MDEyOklzc3VlQ29tbWVudDc2Nzc2MjU1MQ== | simonw 9599 | 2021-01-26T19:07:44Z | 2021-01-26T19:07:44Z | OWNER | Mentioned in https://simonwillison.net/2021/Jan/25/datasette/ |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Database class mechanism for cross-connection in-memory databases 770448622 | |
767761155 | https://github.com/simonw/datasette/issues/991#issuecomment-767761155 | https://api.github.com/repos/simonw/datasette/issues/991 | MDEyOklzc3VlQ29tbWVudDc2Nzc2MTE1NQ== | simonw 9599 | 2021-01-26T19:05:21Z | 2021-01-26T19:06:36Z | OWNER | Idea: implement this using the existing table view, with a custom template called |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Redesign application homepage 714377268 | |
766991680 | https://github.com/simonw/datasette/issues/1201#issuecomment-766991680 | https://api.github.com/repos/simonw/datasette/issues/1201 | MDEyOklzc3VlQ29tbWVudDc2Njk5MTY4MA== | simonw 9599 | 2021-01-25T17:42:21Z | 2021-01-25T17:42:21Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release notes for Datasette 0.54 792904595 | ||
766588371 | https://github.com/simonw/datasette/pull/1206#issuecomment-766588371 | https://api.github.com/repos/simonw/datasette/issues/1206 | MDEyOklzc3VlQ29tbWVudDc2NjU4ODM3MQ== | simonw 9599 | 2021-01-25T06:49:06Z | 2021-01-25T06:49:06Z | OWNER | Last thing to do: write up the annotated version of these release notes, assign it a URL on my blog and link to it from the release notes here so I can publish them simultaneously. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release 0.54 793086333 | |
766588020 | https://github.com/simonw/datasette/pull/1206#issuecomment-766588020 | https://api.github.com/repos/simonw/datasette/issues/1206 | MDEyOklzc3VlQ29tbWVudDc2NjU4ODAyMA== | simonw 9599 | 2021-01-25T06:48:20Z | 2021-01-25T06:48:20Z | OWNER | Issues to reference in the commit message: #509, #1091, #1150, #1151, #1166, #1167, #1178, #1181, #1182, #1184, #1185, #1186, #1187, #1194, #1198 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release 0.54 793086333 | |
766586151 | https://github.com/simonw/datasette/issues/1201#issuecomment-766586151 | https://api.github.com/repos/simonw/datasette/issues/1201 | MDEyOklzc3VlQ29tbWVudDc2NjU4NjE1MQ== | simonw 9599 | 2021-01-25T06:44:43Z | 2021-01-25T06:44:43Z | OWNER | OK, release notes are ready to merge from that branch. I'll ship the release in the morning, to give me time to write the accompanying annotated release notes. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release notes for Datasette 0.54 792904595 | |
766545604 | https://github.com/simonw/datasette/issues/1201#issuecomment-766545604 | https://api.github.com/repos/simonw/datasette/issues/1201 | MDEyOklzc3VlQ29tbWVudDc2NjU0NTYwNA== | simonw 9599 | 2021-01-25T05:14:31Z | 2021-01-25T05:14:31Z | OWNER | The two big ticket items are |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release notes for Datasette 0.54 792904595 | |
766545442 | https://github.com/simonw/datasette/issues/1201#issuecomment-766545442 | https://api.github.com/repos/simonw/datasette/issues/1201 | MDEyOklzc3VlQ29tbWVudDc2NjU0NTQ0Mg== | simonw 9599 | 2021-01-25T05:13:59Z | 2021-01-25T05:13:59Z | OWNER | The big stuff:
Smaller:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release notes for Datasette 0.54 792904595 | |
766543387 | https://github.com/simonw/datasette/issues/1201#issuecomment-766543387 | https://api.github.com/repos/simonw/datasette/issues/1201 | MDEyOklzc3VlQ29tbWVudDc2NjU0MzM4Nw== | simonw 9599 | 2021-01-25T05:07:40Z | 2021-01-25T05:13:29Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release notes for Datasette 0.54 792904595 | ||
766536076 | https://github.com/simonw/datasette/issues/983#issuecomment-766536076 | https://api.github.com/repos/simonw/datasette/issues/983 | MDEyOklzc3VlQ29tbWVudDc2NjUzNjA3Ng== | simonw 9599 | 2021-01-25T04:43:53Z | 2021-01-25T04:43:53Z | OWNER | ... actually not going to include this in 0.54, I need to write a couple of plugins myself using it before I even make it available in preview. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
JavaScript plugin hooks mechanism similar to pluggy 712260429 | |
766535046 | https://github.com/simonw/datasette/issues/1195#issuecomment-766535046 | https://api.github.com/repos/simonw/datasette/issues/1195 | MDEyOklzc3VlQ29tbWVudDc2NjUzNTA0Ng== | simonw 9599 | 2021-01-25T04:40:08Z | 2021-01-25T04:40:08Z | OWNER | Also: should the view name really be the same for both of these pages?
Where one of them is a canned query and the other is an arbitrary query? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
view_name = "query" for the query page 789336592 | |
766534748 | https://github.com/simonw/datasette/issues/1195#issuecomment-766534748 | https://api.github.com/repos/simonw/datasette/issues/1195 | MDEyOklzc3VlQ29tbWVudDc2NjUzNDc0OA== | simonw 9599 | 2021-01-25T04:38:56Z | 2021-01-25T04:38:56Z | OWNER | Here's a diff showing how far I got before I abandoned this particular effort: ```diff diff --git a/datasette/views/base.py b/datasette/views/base.py index a21b929..04e4aa9 100644 --- a/datasette/views/base.py +++ b/datasette/views/base.py @@ -120,7 +120,7 @@ class BaseView: handler = getattr(self, request.method.lower(), None) return await handler(request, args, *kwargs)
@@ -155,7 +155,7 @@ class BaseView: class DataView(BaseView): - name = "" + view_name = "no-view-name" re_named_parameter = re.compile(":([a-zA-Z0-9_]+)")
@@ -414,6 +414,10 @@ class DataView(BaseView): args["table"] = urllib.parse.unquote_plus(args["table"]) return _format, args
@@ -424,6 +428,8 @@ class DataView(BaseView): # HTML views default to expanding all foreign key labels kwargs["default_labels"] = True
class DatabaseView(DataView): - name = "database" + async def get_view_name(self, request, db_name, table_and_format): + if request.args.get("sql"): + return "query" + else: + return "database"
@@ -145,7 +149,7 @@ class DatabaseView(DataView): class DatabaseDownload(DataView): - name = "database_download" + view_name = "database_download"
diff --git a/datasette/views/index.py b/datasette/views/index.py index b6b8cbe..d750e3d 100644 --- a/datasette/views/index.py +++ b/datasette/views/index.py @@ -16,7 +16,7 @@ COUNT_DB_SIZE_LIMIT = 100 * 1024 * 1024 class IndexView(BaseView): - name = "index" + view_name = "index"
diff --git a/datasette/views/special.py b/datasette/views/special.py index 9750dd0..dbd1e00 100644 --- a/datasette/views/special.py +++ b/datasette/views/special.py @@ -6,7 +6,7 @@ import secrets class JsonDataView(BaseView): - name = "json_data" + view_name = "json_data"
@@ -42,7 +42,7 @@ class JsonDataView(BaseView): class PatternPortfolioView(BaseView): - name = "patterns" + view_name = "patterns"
@@ -50,7 +50,7 @@ class PatternPortfolioView(BaseView): class AuthTokenView(BaseView): - name = "auth_token" + view_name = "auth_token"
@@ -68,7 +68,7 @@ class AuthTokenView(BaseView): class LogoutView(BaseView): - name = "logout" + view_name = "logout"
@@ -87,7 +87,7 @@ class LogoutView(BaseView): class PermissionsDebugView(BaseView): - name = "permissions_debug" + view_name = "permissions_debug"
@@ -102,7 +102,7 @@ class PermissionsDebugView(BaseView): class AllowDebugView(BaseView): - name = "allow_debug" + view_name = "allow_debug"
@@ -136,7 +136,7 @@ class AllowDebugView(BaseView): class MessagesDebugView(BaseView): - name = "messages_debug" + view_name = "messages_debug"
diff --git a/datasette/views/table.py b/datasette/views/table.py index 0a3504b..45d298a 100644 --- a/datasette/views/table.py +++ b/datasette/views/table.py @@ -257,7 +257,16 @@ class RowTableShared(DataView): class TableView(RowTableShared): - name = "table" + view_name = "table" + + async def get_view_name(self, request, db_name, table_and_format): + canned_query = await self.ds.get_canned_query( + db_name, table_and_format, request.actor + ) + if canned_query: + return "query" + else: + return "table"
@@ -923,7 +932,7 @@ async def _sql_params_pks(db, table, pk_values): class RowView(RowTableShared): - name = "row" + view_name = "row"
diff --git a/tests/test_plugins.py b/tests/test_plugins.py index 715c7c1..7ce2b1b 100644 --- a/tests/test_plugins.py +++ b/tests/test_plugins.py @@ -252,7 +252,7 @@ def test_plugin_config_file(app_client): }, ), ( - "/fixtures/", + "/fixtures", { "template": "database.html", "database": "fixtures", @@ -285,6 +285,38 @@ def test_plugin_config_file(app_client): ], }, ), + ( + "/fixtures?sql=select+1+as+one", + { + "template": "query.html", + "database": "fixtures", + "table": None, + "config": {"depth": "database"}, + "view_name": "query", + "request_path": "/fixtures", + "added": 15, + "columns": [ + "one", + ], + }, + ), + ( + "/fixtures/neighborhood_search", + { + "template": "query.html", + "database": "fixtures", + "table": None, + "config": {"depth": "database"}, + "view_name": "query", + "request_path": "/fixtures/neighborhood_search", + "added": 15, + "columns": [ + "neighborhood", + "name", + "state", + ], + }, + ), ], ) def test_hook_extra_body_script(app_client, path, expected_extra_body_script): ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
view_name = "query" for the query page 789336592 | |
766534634 | https://github.com/simonw/datasette/issues/1195#issuecomment-766534634 | https://api.github.com/repos/simonw/datasette/issues/1195 | MDEyOklzc3VlQ29tbWVudDc2NjUzNDYzNA== | simonw 9599 | 2021-01-25T04:38:30Z | 2021-01-25T04:38:30Z | OWNER | This has proved surprisingly difficult to implement, due to the weird way the QueryView is actually called. The class itself isn't used like other view classes - instead, the It turns out this is a bad pattern because it makes changes like this one WAY harder than they should be. I think I should clean this up as part of #878. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
view_name = "query" for the query page 789336592 | |
766525337 | https://github.com/simonw/datasette/pull/1204#issuecomment-766525337 | https://api.github.com/repos/simonw/datasette/issues/1204 | MDEyOklzc3VlQ29tbWVudDc2NjUyNTMzNw== | simonw 9599 | 2021-01-25T04:04:28Z | 2021-01-25T04:04:28Z | OWNER | Writing the tests will be a bit tricky since we need to confirm that the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
WIP: Plugin includes 793002853 | |
766524141 | https://github.com/simonw/datasette/issues/987#issuecomment-766524141 | https://api.github.com/repos/simonw/datasette/issues/987 | MDEyOklzc3VlQ29tbWVudDc2NjUyNDE0MQ== | simonw 9599 | 2021-01-25T03:59:55Z | 2021-01-25T03:59:55Z | OWNER | This is joined with #1191 now, which I've bumped from 0.54. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Documented HTML hooks for JavaScript plugin authors 712984738 | |
766524016 | https://github.com/simonw/datasette/issues/1191#issuecomment-766524016 | https://api.github.com/repos/simonw/datasette/issues/1191 | MDEyOklzc3VlQ29tbWVudDc2NjUyNDAxNg== | simonw 9599 | 2021-01-25T03:59:17Z | 2021-01-25T03:59:17Z | OWNER | More work can happen in the PR: #1204 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability for plugins to collaborate when adding extra HTML to blocks in default templates 787098345 | |
766523866 | https://github.com/simonw/datasette/issues/1191#issuecomment-766523866 | https://api.github.com/repos/simonw/datasette/issues/1191 | MDEyOklzc3VlQ29tbWVudDc2NjUyMzg2Ng== | simonw 9599 | 2021-01-25T03:58:34Z | 2021-01-25T03:58:34Z | OWNER | I've got a good prototype working now, but I'm dropping this from the Datasette 0.54 milestone because it requires a bunch of additional work to make sure it is really well tested and documented. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability for plugins to collaborate when adding extra HTML to blocks in default templates 787098345 | |
766491911 | https://github.com/simonw/datasette/issues/1194#issuecomment-766491911 | https://api.github.com/repos/simonw/datasette/issues/1194 | MDEyOklzc3VlQ29tbWVudDc2NjQ5MTkxMQ== | simonw 9599 | 2021-01-25T02:02:15Z | 2021-01-25T02:02:15Z | OWNER | I'm going to copy across anything starting with an underscore. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_size= argument is not persisted by hidden form fields in the table filters 788447787 | |
766491566 | https://github.com/simonw/datasette/issues/1167#issuecomment-766491566 | https://api.github.com/repos/simonw/datasette/issues/1167 | MDEyOklzc3VlQ29tbWVudDc2NjQ5MTU2Ng== | simonw 9599 | 2021-01-25T02:01:19Z | 2021-01-25T02:01:19Z | OWNER | New documentation section here (I documented Black as well): https://docs.datasette.io/en/latest/contributing.html#code-formatting |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add Prettier to contributing documentation 777145954 | |
766487520 | https://github.com/simonw/datasette/issues/1167#issuecomment-766487520 | https://api.github.com/repos/simonw/datasette/issues/1167 | MDEyOklzc3VlQ29tbWVudDc2NjQ4NzUyMA== | simonw 9599 | 2021-01-25T01:44:43Z | 2021-01-25T01:44:43Z | OWNER | Thanks @benpickles, I just merged that in. I'll use it in the documentation.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add Prettier to contributing documentation 777145954 | |
766484915 | https://github.com/simonw/datasette/issues/983#issuecomment-766484915 | https://api.github.com/repos/simonw/datasette/issues/983 | MDEyOklzc3VlQ29tbWVudDc2NjQ4NDkxNQ== | simonw 9599 | 2021-01-25T01:33:29Z | 2021-01-25T01:33:29Z | OWNER | I'm going to ship a version of this in Datasette 0.54 with a warning that the interface should be considered unstable (see #1202) so that we can start trying this out. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
JavaScript plugin hooks mechanism similar to pluggy 712260429 | |
766484435 | https://github.com/simonw/datasette/issues/1179#issuecomment-766484435 | https://api.github.com/repos/simonw/datasette/issues/1179 | MDEyOklzc3VlQ29tbWVudDc2NjQ4NDQzNQ== | simonw 9599 | 2021-01-25T01:31:36Z | 2021-01-25T01:31:36Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make original path available to render hooks 780278550 | ||
766484257 | https://github.com/simonw/datasette/issues/1179#issuecomment-766484257 | https://api.github.com/repos/simonw/datasette/issues/1179 | MDEyOklzc3VlQ29tbWVudDc2NjQ4NDI1Nw== | simonw 9599 | 2021-01-25T01:30:57Z | 2021-01-25T01:30:57Z | OWNER | The challenge here is figuring out what the original path, without the The https://github.com/simonw/datasette/blob/b6a7b58fa01af0cd5a5e94bd17d686d283a46819/datasette/utils/init.py#L710-L729 It can be called with Problem is, we want to use it to get rid of the format entirely. We could update |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make original path available to render hooks 780278550 | |
766466030 | https://github.com/simonw/datasette/issues/1191#issuecomment-766466030 | https://api.github.com/repos/simonw/datasette/issues/1191 | MDEyOklzc3VlQ29tbWVudDc2NjQ2NjAzMA== | simonw 9599 | 2021-01-25T00:11:04Z | 2021-01-25T00:11:04Z | OWNER | I can combine this with #987 - each of these areas of the page can be wrapped in a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability for plugins to collaborate when adding extra HTML to blocks in default templates 787098345 | |
766465719 | https://github.com/simonw/datasette/issues/1154#issuecomment-766465719 | https://api.github.com/repos/simonw/datasette/issues/1154 | MDEyOklzc3VlQ29tbWVudDc2NjQ2NTcxOQ== | simonw 9599 | 2021-01-25T00:09:22Z | 2021-01-25T00:09:22Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Documentation for new _internal database and tables 771208009 | ||
766464136 | https://github.com/simonw/datasette/issues/1202#issuecomment-766464136 | https://api.github.com/repos/simonw/datasette/issues/1202 | MDEyOklzc3VlQ29tbWVudDc2NjQ2NDEzNg== | simonw 9599 | 2021-01-25T00:01:02Z | 2021-01-25T00:01:02Z | OWNER | I'm going to use the existing |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Documentation convention for marking unstable APIs. 792931244 | |
766463496 | https://github.com/simonw/datasette/issues/1090#issuecomment-766463496 | https://api.github.com/repos/simonw/datasette/issues/1090 | MDEyOklzc3VlQ29tbWVudDc2NjQ2MzQ5Ng== | simonw 9599 | 2021-01-24T23:57:00Z | 2021-01-24T23:57:00Z | OWNER | Related: I built datasette-leaflet-freedraw which turns any canned query field called |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Custom widgets for canned query forms 741862364 | |
766462475 | https://github.com/simonw/datasette/issues/1202#issuecomment-766462475 | https://api.github.com/repos/simonw/datasette/issues/1202 | MDEyOklzc3VlQ29tbWVudDc2NjQ2MjQ3NQ== | simonw 9599 | 2021-01-24T23:49:28Z | 2021-01-24T23:50:33Z | OWNER | Can use an "admonition" similar to this:
Documentation: https://docutils.sourceforge.io/docs/ref/rst/directives.html#specific-admonitions |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Documentation convention for marking unstable APIs. 792931244 | |
766462197 | https://github.com/simonw/datasette/issues/1154#issuecomment-766462197 | https://api.github.com/repos/simonw/datasette/issues/1154 | MDEyOklzc3VlQ29tbWVudDc2NjQ2MjE5Nw== | simonw 9599 | 2021-01-24T23:47:06Z | 2021-01-24T23:47:06Z | OWNER | I'm going to document this but mark it as unstable, using a new documentation convention for marking unstable APIs. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Documentation for new _internal database and tables 771208009 | |
766434629 | https://github.com/simonw/datasette/issues/1179#issuecomment-766434629 | https://api.github.com/repos/simonw/datasette/issues/1179 | MDEyOklzc3VlQ29tbWVudDc2NjQzNDYyOQ== | simonw 9599 | 2021-01-24T21:23:47Z | 2021-01-24T21:23:47Z | OWNER | I'm just going to do |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make original path available to render hooks 780278550 | |
766433153 | https://github.com/simonw/datasette/issues/1190#issuecomment-766433153 | https://api.github.com/repos/simonw/datasette/issues/1190 | MDEyOklzc3VlQ29tbWVudDc2NjQzMzE1Mw== | simonw 9599 | 2021-01-24T21:13:25Z | 2021-01-24T21:13:25Z | OWNER | This ties in to a bunch of other ideas that are in flight at the moment. If you're publishing databases by uploading them, how do you attach metadata? Ideally by baking it into the database file itself, using the mechanism from #1169. How could this interact with the Lots to think about here. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`datasette publish upload` mechanism for uploading databases to an existing Datasette instance 787098146 | |
766430644 | https://github.com/simonw/datasette/issues/1190#issuecomment-766430644 | https://api.github.com/repos/simonw/datasette/issues/1190 | MDEyOklzc3VlQ29tbWVudDc2NjQzMDY0NA== | simonw 9599 | 2021-01-24T20:57:03Z | 2021-01-24T20:57:03Z | OWNER | I really like this idea. It feels like an opportunity for a plugin that adds two things: an API endpoint to Datasette for accepting uploaded databases, and a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`datasette publish upload` mechanism for uploading databases to an existing Datasette instance 787098146 | |
766430111 | https://github.com/simonw/datasette/issues/1197#issuecomment-766430111 | https://api.github.com/repos/simonw/datasette/issues/1197 | MDEyOklzc3VlQ29tbWVudDc2NjQzMDExMQ== | simonw 9599 | 2021-01-24T20:53:40Z | 2021-01-24T20:53:40Z | OWNER | https://devcenter.heroku.com/articles/slug-compiler#slug-size says that the maximum allowed size is 500MB - my hunch is that the Datasette application itself weighs in at only a dozen or so MB but I haven't measured it. So I would imagine anything up to around 450MB should work OK on Heroku. Cloud Run works for up to about 2GB in my experience. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
DB size limit for publishing with Heroku 791381623 | |
766428183 | https://github.com/simonw/datasette/issues/1198#issuecomment-766428183 | https://api.github.com/repos/simonw/datasette/issues/1198 | MDEyOklzc3VlQ29tbWVudDc2NjQyODE4Mw== | simonw 9599 | 2021-01-24T20:40:37Z | 2021-01-24T20:40:37Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Plugin testing documentation on using pytest-httpx 792625812 | ||
766181628 | https://github.com/simonw/datasette/issues/1199#issuecomment-766181628 | https://api.github.com/repos/simonw/datasette/issues/1199 | MDEyOklzc3VlQ29tbWVudDc2NjE4MTYyOA== | simonw 9599 | 2021-01-23T21:25:18Z | 2021-01-23T21:25:18Z | OWNER | Comment thread here: https://news.ycombinator.com/item?id=25881911 - cperciva says:
But... Datasette is often used in read-only mode, so that disadvantage often doesn't apply. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Experiment with PRAGMA mmap_size=N 792652391 | |
765757433 | https://github.com/simonw/datasette/issues/1191#issuecomment-765757433 | https://api.github.com/repos/simonw/datasette/issues/1191 | MDEyOklzc3VlQ29tbWVudDc2NTc1NzQzMw== | simonw 9599 | 2021-01-22T23:43:43Z | 2021-01-22T23:43:43Z | OWNER | Another potential use for this: plugins that provide authentication (like |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability for plugins to collaborate when adding extra HTML to blocks in default templates 787098345 | |
763108730 | https://github.com/simonw/datasette/issues/1195#issuecomment-763108730 | https://api.github.com/repos/simonw/datasette/issues/1195 | MDEyOklzc3VlQ29tbWVudDc2MzEwODczMA== | simonw 9599 | 2021-01-19T20:22:37Z | 2021-01-19T20:22:37Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
view_name = "query" for the query page 789336592 | ||
762540514 | https://github.com/simonw/sqlite-utils/issues/223#issuecomment-762540514 | https://api.github.com/repos/simonw/sqlite-utils/issues/223 | MDEyOklzc3VlQ29tbWVudDc2MjU0MDUxNA== | simonw 9599 | 2021-01-19T01:14:58Z | 2021-01-19T01:15:54Z | OWNER | Example from https://docs.python.org/3/library/csv.html#csv.reader ```pycon
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
--delimiter option for CSV import 788527932 | |
762390568 | https://github.com/simonw/datasette/issues/1194#issuecomment-762390568 | https://api.github.com/repos/simonw/datasette/issues/1194 | MDEyOklzc3VlQ29tbWVudDc2MjM5MDU2OA== | simonw 9599 | 2021-01-18T17:43:03Z | 2021-01-18T17:43:03Z | OWNER | Should I just blanket copy over any query string argument that starts with an underscore? Any reason not to do that? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_size= argument is not persisted by hidden form fields in the table filters 788447787 | |
762390401 | https://github.com/simonw/datasette/issues/1194#issuecomment-762390401 | https://api.github.com/repos/simonw/datasette/issues/1194 | MDEyOklzc3VlQ29tbWVudDc2MjM5MDQwMQ== | simonw 9599 | 2021-01-18T17:42:38Z | 2021-01-18T17:42:38Z | OWNER | Relevant code: https://github.com/simonw/datasette/blob/a882d679626438ba0d809944f06f239bcba8ee96/datasette/views/table.py#L815-L827 It looks like there are other arguments that may not be persisted too. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_size= argument is not persisted by hidden form fields in the table filters 788447787 | |
762387875 | https://github.com/simonw/datasette/issues/1036#issuecomment-762387875 | https://api.github.com/repos/simonw/datasette/issues/1036 | MDEyOklzc3VlQ29tbWVudDc2MjM4Nzg3NQ== | simonw 9599 | 2021-01-18T17:36:36Z | 2021-01-18T17:36:36Z | OWNER | As you can see, I'm pretty paranoid about serving content with You found Maybe even an output plugin? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make it possible to download BLOB data from the Datasette UI 725996507 | |
761705076 | https://github.com/simonw/datasette/issues/1191#issuecomment-761705076 | https://api.github.com/repos/simonw/datasette/issues/1191 | MDEyOklzc3VlQ29tbWVudDc2MTcwNTA3Ng== | simonw 9599 | 2021-01-17T00:35:13Z | 2021-01-17T00:37:51Z | OWNER | I'm going to try using Jinja macros to implement this: https://jinja.palletsprojects.com/en/2.11.x/templates/#macros Maybe using one of these tricks to auto-load the macro? http://codyaray.com/2015/05/auto-load-jinja2-macros |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability for plugins to collaborate when adding extra HTML to blocks in default templates 787098345 | |
761703555 | https://github.com/simonw/datasette/issues/1181#issuecomment-761703555 | https://api.github.com/repos/simonw/datasette/issues/1181 | MDEyOklzc3VlQ29tbWVudDc2MTcwMzU1NQ== | simonw 9599 | 2021-01-17T00:24:20Z | 2021-01-17T00:24:40Z | OWNER | Here's the incomplete sketch of a test - to go at the bottom of
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Certain database names results in 404: "Database not found: None" 781262510 | |
761703368 | https://github.com/simonw/datasette/issues/1191#issuecomment-761703368 | https://api.github.com/repos/simonw/datasette/issues/1191 | MDEyOklzc3VlQ29tbWVudDc2MTcwMzM2OA== | simonw 9599 | 2021-01-17T00:22:46Z | 2021-01-17T00:22:46Z | OWNER | I'm going to prototype this in a branch. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability for plugins to collaborate when adding extra HTML to blocks in default templates 787098345 | |
761703232 | https://github.com/simonw/datasette/issues/1191#issuecomment-761703232 | https://api.github.com/repos/simonw/datasette/issues/1191 | MDEyOklzc3VlQ29tbWVudDc2MTcwMzIzMg== | simonw 9599 | 2021-01-17T00:21:31Z | 2021-01-17T00:21:54Z | OWNER | I think this ends up being a whole collection of new plugin hooks, something like:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability for plugins to collaborate when adding extra HTML to blocks in default templates 787098345 | |
761703022 | https://github.com/simonw/datasette/issues/1191#issuecomment-761703022 | https://api.github.com/repos/simonw/datasette/issues/1191 | MDEyOklzc3VlQ29tbWVudDc2MTcwMzAyMg== | simonw 9599 | 2021-01-17T00:20:00Z | 2021-01-17T00:20:00Z | OWNER | Plugins that want to provide extra context to the template can already do so using the So this hook could work by returning a list of template filenames to be included. Those templates can be bundled with the plugin. Since they are included they will have access to the template context and to any |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability for plugins to collaborate when adding extra HTML to blocks in default templates 787098345 | |
761179229 | https://github.com/simonw/datasette/issues/657#issuecomment-761179229 | https://api.github.com/repos/simonw/datasette/issues/657 | MDEyOklzc3VlQ29tbWVudDc2MTE3OTIyOQ== | simonw 9599 | 2021-01-15T20:24:35Z | 2021-01-15T20:24:35Z | OWNER | I'm not sure how I missed this issue but it's almost a year later and I'm finally taking a look at your Parquet work. This is yet more evidence that allowing plugins to provide their own custom I started exploring what Datasette would like on PostgreSQL in #670 - my concern was that I would need to add a large amount of database abstraction code which would dramatically increase the complexity of the core project, but my thinking now is that it might be tractable - Datasette doesn't actually construct SQL in complex ways anywhere outside of the |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Allow creation of virtual tables at startup 548591089 | |
761103910 | https://github.com/simonw/datasette/issues/1191#issuecomment-761103910 | https://api.github.com/repos/simonw/datasette/issues/1191 | MDEyOklzc3VlQ29tbWVudDc2MTEwMzkxMA== | simonw 9599 | 2021-01-15T18:19:29Z | 2021-01-15T18:19:29Z | OWNER | This relates to #987 (documented HTML hooks for JavaScript plugins) but is not quite the same thing. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability for plugins to collaborate when adding extra HTML to blocks in default templates 787098345 | |
761101878 | https://github.com/simonw/datasette/issues/657#issuecomment-761101878 | https://api.github.com/repos/simonw/datasette/issues/657 | MDEyOklzc3VlQ29tbWVudDc2MTEwMTg3OA== | simonw 9599 | 2021-01-15T18:16:01Z | 2021-01-15T18:16:01Z | OWNER | I think the Would that work here? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Allow creation of virtual tables at startup 548591089 | |
759875239 | https://github.com/simonw/datasette/issues/1187#issuecomment-759875239 | https://api.github.com/repos/simonw/datasette/issues/1187 | MDEyOklzc3VlQ29tbWVudDc1OTg3NTIzOQ== | simonw 9599 | 2021-01-14T02:02:24Z | 2021-01-14T02:02:31Z | OWNER | This plugin hook currently returns a string of JavaScript. It could optionally return this instead of a string:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
extra_body_script() support for script type="module" 785588942 | |
759874332 | https://github.com/simonw/datasette/issues/1186#issuecomment-759874332 | https://api.github.com/repos/simonw/datasette/issues/1186 | MDEyOklzc3VlQ29tbWVudDc1OTg3NDMzMg== | simonw 9599 | 2021-01-14T01:59:35Z | 2021-01-14T01:59:35Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
script type="module" support 785573793 | ||
759098964 | https://github.com/simonw/sqlite-utils/issues/220#issuecomment-759098964 | https://api.github.com/repos/simonw/sqlite-utils/issues/220 | MDEyOklzc3VlQ29tbWVudDc1OTA5ODk2NA== | simonw 9599 | 2021-01-12T23:19:55Z | 2021-01-12T23:19:55Z | OWNER | I don't think it makes sense to call Can you expand on your use-case for FTS and views? I'm ready to be convinced otherwise, but I don't see how it would work right now. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Better error message for *_fts methods against views 783778672 | |
759069342 | https://github.com/simonw/datasette/issues/1185#issuecomment-759069342 | https://api.github.com/repos/simonw/datasette/issues/1185 | MDEyOklzc3VlQ29tbWVudDc1OTA2OTM0Mg== | simonw 9599 | 2021-01-12T22:13:18Z | 2021-01-12T22:13:18Z | OWNER | I'm going to change the error message to list the allowed pragmas. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Statement may not contain PRAGMA" error is not strictly true 784628163 | |
759067427 | https://github.com/simonw/datasette/issues/1185#issuecomment-759067427 | https://api.github.com/repos/simonw/datasette/issues/1185 | MDEyOklzc3VlQ29tbWVudDc1OTA2NzQyNw== | simonw 9599 | 2021-01-12T22:09:21Z | 2021-01-12T22:09:21Z | OWNER | That allow-list was added in #761 but is not currently documented. It's here in the code: https://github.com/simonw/datasette/blob/8e8fc5cee5c78da8334495c6d6257d5612c40792/datasette/utils/init.py#L173-L186 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Statement may not contain PRAGMA" error is not strictly true 784628163 | |
759066777 | https://github.com/simonw/datasette/issues/1185#issuecomment-759066777 | https://api.github.com/repos/simonw/datasette/issues/1185 | MDEyOklzc3VlQ29tbWVudDc1OTA2Njc3Nw== | simonw 9599 | 2021-01-12T22:07:58Z | 2021-01-12T22:07:58Z | OWNER | https://docs.datasette.io/en/stable/sql_queries.html?highlight=pragma#named-parameters documentation is out-of-date as well:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"Statement may not contain PRAGMA" error is not strictly true 784628163 | |
758356640 | https://github.com/simonw/datasette/issues/1183#issuecomment-758356640 | https://api.github.com/repos/simonw/datasette/issues/1183 | MDEyOklzc3VlQ29tbWVudDc1ODM1NjY0MA== | simonw 9599 | 2021-01-12T02:42:08Z | 2021-01-12T02:42:08Z | OWNER | Should Datasette have subcommands for this? Maybe. The |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Take advantage of sqlite-utils cached table counts, if available 782708469 | |
758356097 | https://github.com/simonw/datasette/issues/1183#issuecomment-758356097 | https://api.github.com/repos/simonw/datasette/issues/1183 | MDEyOklzc3VlQ29tbWVudDc1ODM1NjA5Nw== | simonw 9599 | 2021-01-12T02:40:30Z | 2021-01-12T02:40:30Z | OWNER | So how would this work? I think I'm going to automatically use these values if the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Take advantage of sqlite-utils cached table counts, if available 782708469 | |
758283074 | https://github.com/simonw/datasette/issues/1091#issuecomment-758283074 | https://api.github.com/repos/simonw/datasette/issues/1091 | MDEyOklzc3VlQ29tbWVudDc1ODI4MzA3NA== | simonw 9599 | 2021-01-11T23:12:46Z | 2021-01-11T23:12:46Z | OWNER | Fantastic! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.json and .csv exports fail to apply base_url 742011049 | |
757375858 | https://github.com/simonw/datasette/issues/1182#issuecomment-757375858 | https://api.github.com/repos/simonw/datasette/issues/1182 | MDEyOklzc3VlQ29tbWVudDc1NzM3NTg1OA== | simonw 9599 | 2021-01-09T22:18:47Z | 2021-01-09T22:18:47Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Retire "Ecosystem" page in favour of datasette.io/plugins and /tools 782692159 | ||
757373741 | https://github.com/simonw/datasette/issues/1182#issuecomment-757373741 | https://api.github.com/repos/simonw/datasette/issues/1182 | MDEyOklzc3VlQ29tbWVudDc1NzM3Mzc0MQ== | simonw 9599 | 2021-01-09T22:01:41Z | 2021-01-09T22:01:41Z | OWNER | It can talk about Dogsheep too. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Retire "Ecosystem" page in favour of datasette.io/plugins and /tools 782692159 | |
757373082 | https://github.com/simonw/datasette/issues/1182#issuecomment-757373082 | https://api.github.com/repos/simonw/datasette/issues/1182 | MDEyOklzc3VlQ29tbWVudDc1NzM3MzA4Mg== | simonw 9599 | 2021-01-09T21:55:33Z | 2021-01-09T21:55:33Z | OWNER | I'll leave the page there but change it into more of a blurb about the existence of the plugins and tools directories. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Retire "Ecosystem" page in favour of datasette.io/plugins and /tools 782692159 | |
756487966 | https://github.com/simonw/datasette/issues/1181#issuecomment-756487966 | https://api.github.com/repos/simonw/datasette/issues/1181 | MDEyOklzc3VlQ29tbWVudDc1NjQ4Nzk2Ng== | simonw 9599 | 2021-01-08T01:25:42Z | 2021-01-08T01:25:42Z | OWNER | I'm going to add a unit test that tries a variety of weird database names. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Certain database names results in 404: "Database not found: None" 781262510 | |
756482163 | https://github.com/simonw/datasette/issues/1181#issuecomment-756482163 | https://api.github.com/repos/simonw/datasette/issues/1181 | MDEyOklzc3VlQ29tbWVudDc1NjQ4MjE2Mw== | simonw 9599 | 2021-01-08T01:06:23Z | 2021-01-08T01:06:54Z | OWNER | Yes, that logic is definitely at fault. It looks like it applies |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Certain database names results in 404: "Database not found: None" 781262510 | |
756453945 | https://github.com/simonw/datasette/issues/1091#issuecomment-756453945 | https://api.github.com/repos/simonw/datasette/issues/1091 | MDEyOklzc3VlQ29tbWVudDc1NjQ1Mzk0NQ== | simonw 9599 | 2021-01-07T23:42:50Z | 2021-01-07T23:42:50Z | OWNER | @henry501 it looks like you spotted a bug in the documentation - I just addressed that, the fix is now live here: https://docs.datasette.io/en/latest/deploying.html#running-datasette-behind-a-proxy |
{ "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.json and .csv exports fail to apply base_url 742011049 | |
756453010 | https://github.com/simonw/datasette/issues/1091#issuecomment-756453010 | https://api.github.com/repos/simonw/datasette/issues/1091 | MDEyOklzc3VlQ29tbWVudDc1NjQ1MzAxMA== | simonw 9599 | 2021-01-07T23:39:58Z | 2021-01-07T23:40:25Z | OWNER | @tballison I think that's the solution! It looks like you need to use this in your config:
Instead of this:
Give that a go and let me know if it fixes it. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
.json and .csv exports fail to apply base_url 742011049 | |
756335394 | https://github.com/simonw/datasette/issues/1171#issuecomment-756335394 | https://api.github.com/repos/simonw/datasette/issues/1171 | MDEyOklzc3VlQ29tbWVudDc1NjMzNTM5NA== | simonw 9599 | 2021-01-07T19:35:59Z | 2021-01-07T19:35:59Z | OWNER | I requested a D-U-N-S number as a first step in getting a developer certificate: https://developer.apple.com/support/D-U-N-S/ |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
GitHub Actions workflow to build and sign macOS binary executables 778450486 | |
756312213 | https://github.com/simonw/datasette/issues/1180#issuecomment-756312213 | https://api.github.com/repos/simonw/datasette/issues/1180 | MDEyOklzc3VlQ29tbWVudDc1NjMxMjIxMw== | simonw 9599 | 2021-01-07T18:56:24Z | 2021-01-07T18:56:24Z | OWNER | The |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Lazily evaluated arguments for call_with_supported_arguments 780767542 | |
755500475 | https://github.com/simonw/datasette/issues/1180#issuecomment-755500475 | https://api.github.com/repos/simonw/datasette/issues/1180 | MDEyOklzc3VlQ29tbWVudDc1NTUwMDQ3NQ== | simonw 9599 | 2021-01-06T18:43:41Z | 2021-01-06T18:43:41Z | OWNER | Relevant code: https://github.com/simonw/datasette/blob/97fb10c17dd007a275ab743742e93e932335ad67/datasette/utils/init.py#L919-L940 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Lazily evaluated arguments for call_with_supported_arguments 780767542 | |
755495387 | https://github.com/simonw/datasette/issues/1179#issuecomment-755495387 | https://api.github.com/repos/simonw/datasette/issues/1179 | MDEyOklzc3VlQ29tbWVudDc1NTQ5NTM4Nw== | simonw 9599 | 2021-01-06T18:39:23Z | 2021-01-06T18:39:23Z | OWNER | In that case maybe there are three new arguments: I'll also add |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make original path available to render hooks 780278550 |
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