github
html_url | issue_url | id | node_id | user | created_at | updated_at | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
https://github.com/simonw/datasette/issues/185#issuecomment-379595253 | https://api.github.com/repos/simonw/datasette/issues/185 | 379595253 | MDEyOklzc3VlQ29tbWVudDM3OTU5NTI1Mw== | 9599 | 2018-04-09T00:24:10Z | 2018-04-09T00:24:10Z | OWNER | @carlmjohnson in case you aren't following along with #189 I've shipped the first working prototype of sort-by-column - you can try it out here: https://datasette-issue-189-demo-2.now.sh/salaries-7859114-7859114/2017+Maryland+state+salaries?_search=university&_sort_desc=annual_salary | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 299760684 | |
https://github.com/simonw/datasette/issues/57#issuecomment-400903871 | https://api.github.com/repos/simonw/datasette/issues/57 | 400903871 | MDEyOklzc3VlQ29tbWVudDQwMDkwMzg3MQ== | 9599 | 2018-06-28T04:01:38Z | 2018-06-28T04:01:38Z | OWNER | Shipped to Docker Hub: https://hub.docker.com/r/datasetteproject/datasette/ I did this manually the first time. I'll set Travis up to do this automatically in #329 | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 273127694 | |
https://github.com/simonw/datasette/issues/334#issuecomment-403672561 | https://api.github.com/repos/simonw/datasette/issues/334 | 403672561 | MDEyOklzc3VlQ29tbWVudDQwMzY3MjU2MQ== | 9599 | 2018-07-10T01:45:28Z | 2018-07-10T01:45:28Z | OWNER | Tested with `datasette publish heroku fixtures.db --extra-options="--config sql_time_limit_ms:4000"` https://blooming-anchorage-31561.herokuapp.com/-/config | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 339095976 | |
https://github.com/simonw/datasette/issues/271#issuecomment-453262703 | https://api.github.com/repos/simonw/datasette/issues/271 | 453262703 | MDEyOklzc3VlQ29tbWVudDQ1MzI2MjcwMw== | 9599 | 2019-01-10T21:35:18Z | 2019-01-10T21:35:18Z | OWNER | It turns out this was much easier to support than I expected: https://github.com/simonw/datasette/commit/eac08f0dfc61a99e8887442fc247656d419c76f8 | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 324162476 | |
https://github.com/simonw/datasette/pull/434#issuecomment-489104146 | https://api.github.com/repos/simonw/datasette/issues/434 | 489104146 | MDEyOklzc3VlQ29tbWVudDQ4OTEwNDE0Ng== | 9599 | 2019-05-03T13:56:45Z | 2019-05-03T13:56:45Z | OWNER | This is amazing - works an absolute treat. Thank you very much! | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 434321685 | |
https://github.com/simonw/datasette/issues/478#issuecomment-509066513 | https://api.github.com/repos/simonw/datasette/issues/478 | 509066513 | MDEyOklzc3VlQ29tbWVudDUwOTA2NjUxMw== | 9599 | 2019-07-08T03:30:41Z | 2019-07-08T03:30:41Z | OWNER | This worked as intended - thanks @glasnt! https://travis-ci.org/simonw/datasette/builds/555580006 <img width="904" alt="Build__1058_-_simonw_datasette_-_Travis_CI" src="https://user-images.githubusercontent.com/9599/60781155-0b178300-a0f6-11e9-91c8-219334a1c213.png"> The release has been deployed to PyPI even while the Docker image is still being built. | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 445868234 | |
https://github.com/simonw/datasette/pull/653#issuecomment-582211745 | https://api.github.com/repos/simonw/datasette/issues/653 | 582211745 | MDEyOklzc3VlQ29tbWVudDU4MjIxMTc0NQ== | 9599 | 2020-02-05T02:28:05Z | 2020-02-05T02:28:05Z | OWNER | This is shipped in Datasette 0.35. Here's a demo of it working: https://latest.datasette.io/fixtures?sql=--+this+is+a+comment%0D%0Aselect+*+from+%5B123_starts_with_digits%5D Compare with https://v0-34.datasette.io/fixtures?sql=--+this+is+a+comment%0D%0Aselect+*+from+%5B123_starts_with_digits%5D which returned an error. | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 541331755 | |
https://github.com/simonw/datasette/issues/731#issuecomment-620095649 | https://api.github.com/repos/simonw/datasette/issues/731 | 620095649 | MDEyOklzc3VlQ29tbWVudDYyMDA5NTY0OQ== | 9599 | 2020-04-27T16:32:44Z | 2020-04-27T16:32:44Z | OWNER | Documentation: https://datasette.readthedocs.io/en/latest/config.html#configuration-directory-mode | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 605110015 | |
https://github.com/simonw/sqlite-utils/issues/110#issuecomment-626431484 | https://api.github.com/repos/simonw/sqlite-utils/issues/110 | 626431484 | MDEyOklzc3VlQ29tbWVudDYyNjQzMTQ4NA== | 9599 | 2020-05-11T01:58:20Z | 2020-05-11T01:58:20Z | OWNER | Released in 2.9 https://sqlite-utils.readthedocs.io/en/latest/changelog.html#v2-9 | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 613755043 | |
https://github.com/simonw/datasette/pull/1112#issuecomment-735283033 | https://api.github.com/repos/simonw/datasette/issues/1112 | 735283033 | MDEyOklzc3VlQ29tbWVudDczNTI4MzAzMw== | 9599 | 2020-11-28T19:53:36Z | 2020-11-28T19:53:36Z | OWNER | Thanks! | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 752749485 | |
https://github.com/simonw/datasette/issues/1134#issuecomment-742024588 | https://api.github.com/repos/simonw/datasette/issues/1134 | 742024588 | MDEyOklzc3VlQ29tbWVudDc0MjAyNDU4OA== | 9599 | 2020-12-09T20:19:59Z | 2020-12-09T20:20:33Z | OWNER | https://byraadsarkivet.aarhus.dk/db/cases?_searchmode=raw&_search=sundhedsfrem%2A is an absolutely beautiful example of a themed Datasette! Very excited to show this to people. | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 760312579 | |
https://github.com/simonw/datasette/issues/983#issuecomment-753219407 | https://api.github.com/repos/simonw/datasette/issues/983 | 753219407 | MDEyOklzc3VlQ29tbWVudDc1MzIxOTQwNw== | 9599 | 2020-12-31T22:38:45Z | 2020-12-31T22:39:10Z | OWNER | You'll be able to add JavaScript plugins using a bunch of different mechanisms: - In a custom template, dropping the code in to a `<script>` block - A bookmarklet that injects an extra script (I'm really excited to try this out) - A separate `script.js` file that's loaded into Datasette using the `"extra_js_urls"` metadata option, documented here: https://docs.datasette.io/en/stable/custom_templates.html#custom-css-and-javascript - A plugin you can install, like `datasette-vega` or `datasette-cluster-map` - since plugins can bundle their own script files that then get loaded on pages via this hook: https://docs.datasette.io/en/stable/plugin_hooks.html#extra-js-urls-template-database-table-columns-view-name-request-datasette | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 712260429 | |
https://github.com/simonw/datasette/issues/1091#issuecomment-756453945 | https://api.github.com/repos/simonw/datasette/issues/1091 | 756453945 | MDEyOklzc3VlQ29tbWVudDc1NjQ1Mzk0NQ== | 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} | 742011049 | |
https://github.com/simonw/sqlite-utils/issues/227#issuecomment-778854808 | https://api.github.com/repos/simonw/sqlite-utils/issues/227 | 778854808 | MDEyOklzc3VlQ29tbWVudDc3ODg1NDgwOA== | 9599 | 2021-02-14T22:46:54Z | 2021-02-14T22:46:54Z | OWNER | Fix is released in 3.5. | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 807174161 | |
https://github.com/simonw/datasette/issues/1320#issuecomment-847237524 | https://api.github.com/repos/simonw/datasette/issues/1320 | 847237524 | MDEyOklzc3VlQ29tbWVudDg0NzIzNzUyNA== | 9599 | 2021-05-24T18:15:56Z | 2021-05-24T18:15:56Z | OWNER | Added some new documentation about that here: https://github.com/simonw/datasette/blob/c0a748e5c3f498fa8c139b420d07dd3dea612379/docs/installation.rst#installing-plugins | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 884952179 | |
https://github.com/simonw/datasette/issues/619#issuecomment-850057694 | https://api.github.com/repos/simonw/datasette/issues/619 | 850057694 | MDEyOklzc3VlQ29tbWVudDg1MDA1NzY5NA== | 9599 | 2021-05-28T02:03:05Z | 2021-05-28T02:03:05Z | OWNER | I nearly got this working, but I ran into one last problem: the code path for when an error is raised but the user specified `?_shape=array`. I'll open a draft PR with where I've got to so far. | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 520655983 | |
https://github.com/simonw/datasette/issues/1127#issuecomment-852712106 | https://api.github.com/repos/simonw/datasette/issues/1127 | 852712106 | MDEyOklzc3VlQ29tbWVudDg1MjcxMjEwNg== | 9599 | 2021-06-02T04:28:55Z | 2021-06-02T04:28:55Z | OWNER | This became resizable in #1236. | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 756818250 | |
https://github.com/simonw/sqlite-utils/issues/309#issuecomment-895587441 | https://api.github.com/repos/simonw/sqlite-utils/issues/309 | 895587441 | IC_kwDOCGYnMM41YZRx | 9599 | 2021-08-09T22:15:45Z | 2021-08-09T22:15:45Z | OWNER | ``` OverflowError: Python int too large to convert to SQLite INTEGER >>> import sys >>> def find_variables(tb, vars): to_find = list(vars) found = {} for var in to_find: if var in tb.tb_frame.f_locals: vars.remove(var) found[var] = tb.tb_frame.f_locals[var] if vars and tb.tb_next: found.update(find_variables(tb.tb_next, vars)) return found ... >>> find_variables(sys.last_traceback, ["sql", "params"]) {'params': [34223049823094832094802398430298048240], 'sql': 'INSERT INTO [row] ([v]) VALUES (?);'} ``` | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 963897111 | |
https://github.com/simonw/datasette/pull/1458#issuecomment-943620649 | https://api.github.com/repos/simonw/datasette/issues/1458 | 943620649 | IC_kwDOBm6k_c44PoIp | 9599 | 2021-10-14T18:38:58Z | 2021-10-14T18:38:58Z | OWNER | This is a great idea, thanks. | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 988555009 | |
https://github.com/simonw/sqlite-utils/issues/335#issuecomment-968380387 | https://api.github.com/repos/simonw/sqlite-utils/issues/335 | 968380387 | IC_kwDOCGYnMM45uE_j | 9599 | 2021-11-14T22:55:56Z | 2021-11-14T22:55:56Z | OWNER | OK, this should fix it. | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 1042569687 | |
https://github.com/simonw/datasette/issues/93#issuecomment-974765825 | https://api.github.com/repos/simonw/datasette/issues/93 | 974765825 | IC_kwDOBm6k_c46Gb8B | 9599 | 2021-11-21T07:00:21Z | 2021-11-21T07:00:21Z | OWNER | Closing this in favour of Datasette Desktop: https://datasette.io/desktop | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 273944952 | |
https://github.com/simonw/sqlite-utils/pull/407#issuecomment-1040959312 | https://api.github.com/repos/simonw/sqlite-utils/issues/407 | 1040959312 | IC_kwDOCGYnMM4-C8dQ | 9599 | 2022-02-16T00:58:32Z | 2022-02-16T00:58:32Z | OWNER | This is honestly one of the most complete PRs I've ever seen for a feature of this size. Thanks so much for this! | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 1138948786 | |
https://github.com/simonw/sqlite-utils/issues/413#issuecomment-1065245831 | https://api.github.com/repos/simonw/sqlite-utils/issues/413 | 1065245831 | IC_kwDOCGYnMM4_flyH | 9599 | 2022-03-11T15:59:14Z | 2022-03-11T15:59:14Z | OWNER | Hint from https://twitter.com/AdamChainz/status/1502311047612575745 > Try: > > `autodoc_typehints = 'description'` > > For a list-of-arguments format > > https://sphinx-doc.org/en/master/usage/extensions/autodoc.html#confval-autodoc_typehints | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 1166587040 | |
https://github.com/simonw/sqlite-utils/issues/415#issuecomment-1073468996 | https://api.github.com/repos/simonw/sqlite-utils/issues/415 | 1073468996 | IC_kwDOCGYnMM4_-9ZE | 9599 | 2022-03-21T04:14:42Z | 2022-03-21T04:14:42Z | OWNER | I can fix this like so: ``` % sqlite-utils convert demo.db demo foo '{"foo": "bar"}' --multi --dry-run abc --- becomes: {"foo": "bar"} Would affect 1 row ``` Diff is this: ```diff diff --git a/sqlite_utils/cli.py b/sqlite_utils/cli.py index 0cf0468..b2a0440 100644 --- a/sqlite_utils/cli.py +++ b/sqlite_utils/cli.py @@ -2676,7 +2676,10 @@ def convert( raise click.ClickException(str(e)) if dry_run: # Pull first 20 values for first column and preview them - db.conn.create_function("preview_transform", 1, lambda v: fn(v) if v else v) + preview = lambda v: fn(v) if v else v + if multi: + preview = lambda v: json.dumps(fn(v), default=repr) if v else v + db.conn.create_function("preview_transform", 1, preview) sql = """ select [{column}] as value, ``` | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 1171599874 | |
https://github.com/simonw/sqlite-utils/issues/420#issuecomment-1080141111 | https://api.github.com/repos/simonw/sqlite-utils/issues/420 | 1080141111 | IC_kwDOCGYnMM5AYaU3 | 9599 | 2022-03-28T03:25:57Z | 2022-03-28T03:54:37Z | OWNER | So now this should solve your problem: ``` echo '[{"name": "notaword"}, {"name": "word"}] ' | python3 -m sqlite_utils insert listings.db listings - --convert ' import enchant d = enchant.Dict("en_US") def convert(row): global d row["is_dictionary_word"] = d.check(row["name"]) ' ``` | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 1178546862 | |
https://github.com/simonw/sqlite-utils/issues/467#issuecomment-1224386951 | https://api.github.com/repos/simonw/sqlite-utils/issues/467 | 1224386951 | IC_kwDOCGYnMM5I-qmH | 9599 | 2022-08-23T17:20:07Z | 2022-08-23T17:20:07Z | OWNER | Example of that prototype working: ```pycon >>> from sqlite_utils import Database >>> db = Database(memory=True) >>> db["dogs"].create({"id": int, "name": str}, pk="id") <Table dogs (id, name)> >>> db["dogs"].create({"id": int, "name": str, "age": int}, pk="id", transform=True) <Table dogs (id, name, age)> ``` | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 1348169997 | |
https://github.com/simonw/sqlite-utils/pull/480#issuecomment-1232089808 | https://api.github.com/repos/simonw/sqlite-utils/issues/480 | 1232089808 | IC_kwDOCGYnMM5JcDLQ | 9599 | 2022-08-30T19:43:02Z | 2022-08-30T19:43:02Z | OWNER | Yeah this seems like a reasonable addition to me. Needs a test, which can go next to this one: https://github.com/simonw/sqlite-utils/blob/087753cd42c406f1e060c1822dcd9b5fda3d60f4/tests/test_fts.py#L561 | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 1355433619 | |
https://github.com/simonw/datasette/issues/1817#issuecomment-1258756231 | https://api.github.com/repos/simonw/datasette/issues/1817 | 1258756231 | IC_kwDOBm6k_c5LBxiH | 9599 | 2022-09-26T23:19:34Z | 2022-09-26T23:19:34Z | OWNER | This is a good idea - it's something I should do before Datasette 1.0. I was a tiny bit worried about compatibility (Datasette is 3.7+) but it looks like they have been in Python since 3.0! | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 1384273985 | |
https://github.com/simonw/sqlite-utils/issues/532#issuecomment-1539009453 | https://api.github.com/repos/simonw/sqlite-utils/issues/532 | 1539009453 | IC_kwDOCGYnMM5bu2ut | 9599 | 2023-05-08T20:30:29Z | 2023-05-08T20:30:42Z | OWNER | Here's an improvement: ``` % sqlite-utils insert /tmp/b.db blah /tmp/blah.txt [####################################] 100% Error: Invalid JSON - use --csv for CSV or --tsv for TSV files JSON error: Expecting value: line 1 column 1 (char 0) ``` | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 1620254998 | |
https://github.com/simonw/sqlite-utils/issues/235#issuecomment-1606411508 | https://api.github.com/repos/simonw/sqlite-utils/issues/235 | 1606411508 | IC_kwDOCGYnMM5fv-T0 | 9599 | 2023-06-26T01:42:10Z | 2023-06-26T01:42:22Z | OWNER | https://sqlite-utils.datasette.io/en/stable/changelog.html#v3-33 - upgrading to `sqlite-utils>=3.33` and then installing both `sqlean.py` and `sqlite-dump` in the same virtual environment as `sqlite-utils` should fix this issue. | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | 810618495 |