This note includes two images.
...`\r\n\r\nThe DTD at http://xml.evernote.com/pub/enml2.dtd includes some entities:\r\n\r\n```\r\n\r\n\r\n\r\n%HTMLlat1;\r\n\r\n\r\n%HTMLsymbol;\r\n\r\n\r\n%HTMLspecial;\r\n```\r\nSo I need to be able to handle all of those different entities. I think I can do that using `html.entities.entitydefs` from the Python standard library, which looks a bit like this:\r\n\r\n```python\r\n{'Aacute': '\u00c1',\r\n 'aacute': '\u00e1',\r\n 'Aacute;': '\u00c1',\r\n 'aacute;': '\u00e1',\r\n 'Abreve;': '\u0102',\r\n 'abreve;': '\u0103',\r\n 'ac;': '\u223e',\r\n 'acd;': '\u223f',\r\n# ...\r\n}\r\n```\r\n\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 748372469, "label": "ParseError: undefined entity š"}, "performed_via_github_app": null}
{"html_url": "https://github.com/dogsheep/evernote-to-sqlite/issues/11#issuecomment-777798330", "issue_url": "https://api.github.com/repos/dogsheep/evernote-to-sqlite/issues/11", "id": 777798330, "node_id": "MDEyOklzc3VlQ29tbWVudDc3Nzc5ODMzMA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-02-11T21:18:58Z", "updated_at": "2021-02-11T21:18:58Z", "author_association": "MEMBER", "body": "Thanks for the fix!", "reactions": "{\"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 792851444, "label": "XML parse error"}, "performed_via_github_app": null}
{"html_url": "https://github.com/dogsheep/evernote-to-sqlite/issues/11#issuecomment-777690332", "issue_url": "https://api.github.com/repos/dogsheep/evernote-to-sqlite/issues/11", "id": 777690332, "node_id": "MDEyOklzc3VlQ29tbWVudDc3NzY5MDMzMg==", "user": {"value": 3613583, "label": "dskrad"}, "created_at": "2021-02-11T18:16:01Z", "updated_at": "2021-02-11T18:16:01Z", "author_association": "NONE", "body": "I solved this issue by modifying line 31 of utils.py\r\n\r\n content = ET.tostring(ET.fromstring(content_xml.strip())).decode(\"utf-8\")", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 792851444, "label": "XML parse error"}, "performed_via_github_app": null}
{"html_url": "https://github.com/simonw/datasette/issues/1200#issuecomment-777178728", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1200", "id": 777178728, "node_id": "MDEyOklzc3VlQ29tbWVudDc3NzE3ODcyOA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-02-11T03:13:59Z", "updated_at": "2021-02-11T03:13:59Z", "author_association": "OWNER", "body": "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.\r\n\r\nIt's mainly to guard against unexpected behaviour from limit-less queries though. It's not a very high priority feature!", "reactions": "{\"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 792890765, "label": "?_size=10 option for the arbitrary query page would be useful"}, "performed_via_github_app": null}
{"html_url": "https://github.com/simonw/datasette/issues/1200#issuecomment-777132761", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1200", "id": 777132761, "node_id": "MDEyOklzc3VlQ29tbWVudDc3NzEzMjc2MQ==", "user": {"value": 7476523, "label": "bobwhitelock"}, "created_at": "2021-02-11T00:29:52Z", "updated_at": "2021-02-11T00:29:52Z", "author_association": "CONTRIBUTOR", "body": "I'm probably missing something but what's the use case here - what would this offer over adding `limit 10` to the query?", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 792890765, "label": "?_size=10 option for the arbitrary query page would be useful"}, "performed_via_github_app": null}
{"html_url": "https://github.com/simonw/datasette/issues/1219#issuecomment-775442039", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1219", "id": 775442039, "node_id": "MDEyOklzc3VlQ29tbWVudDc3NTQ0MjAzOQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-02-08T20:39:52Z", "updated_at": "2021-02-08T22:13:00Z", "author_association": "OWNER", "body": "This comment helped me find a pattern for running Scalene against the Datasette test suite: https://github.com/emeryberger/scalene/issues/70#issuecomment-755245858\r\n\r\n```\r\npip install scalene\r\n```\r\nThen I created a file called `run_tests.py` with the following contents:\r\n```python\r\nif __name__ == \"__main__\":\r\n import sys, pytest\r\n pytest.main(sys.argv)\r\n```\r\nThen I ran this:\r\n```\r\nscalene --profile-all run_tests.py -sv -x .\r\n```\r\nBut... it quit with a segmentation fault!\r\n```\r\n(datasette) datasette % scalene --profile-all run_tests.py -sv -x .\r\n======================================================================== test session starts ========================================================================\r\nplatform darwin -- Python 3.8.6, pytest-6.0.1, py-1.9.0, pluggy-0.13.1 -- python\r\ncachedir: .pytest_cache\r\nrootdir: /Users/simon/Dropbox/Development/datasette, configfile: pytest.ini\r\nplugins: asyncio-0.14.0, timeout-1.4.2\r\ncollecting ... Fatal Python error: Segmentation fault\r\n\r\nCurrent thread 0x0000000110c1edc0 (most recent call first):\r\n File \"/Users/simon/Dropbox/Development/datasette/datasette/utils/__init__.py\", line 553 in detect_json1\r\n File \"/Users/simon/Dropbox/Development/datasette/datasette/filters.py\", line 168 in Filters\r\n File \"/Users/simon/Dropbox/Development/datasette/datasette/filters.py\", line 94 in \r\n File \"\", line 219 in _call_with_frames_removed\r\n File \"\", line 783 in exec_module\r\n File \"\", line 671 in _load_unlocked\r\n File \"\", line 975 in _find_and_load_unlocked\r\n File \"\", line 991 in _find_and_load\r\n File \"/Users/simon/Dropbox/Development/datasette/datasette/views/table.py\", line 27 in \r\n File \"\", line 219 in _call_with_frames_removed\r\n File \"\", line 783 in exec_module\r\n File \"\", line 671 in _load_unlocked\r\n File \"\", line 975 in _find_and_load_unlocked\r\n File \"\", line 991 in _find_and_load\r\n File \"/Users/simon/Dropbox/Development/datasette/datasette/app.py\", line 42 in \r\n File \"\", line 219 in _call_with_frames_removed\r\n File \"\", line 783 in exec_module\r\n File \"\", line 671 in _load_unlocked\r\n File \"\", line 975 in _find_and_load_unlocked\r\n File \"\", line 991 in _find_and_load\r\n File \"/Users/simon/Dropbox/Development/datasette/tests/test_api.py\", line 1 in \r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/assertion/rewrite.py\", line 170 in exec_module\r\n File \"\", line 671 in _load_unlocked\r\n File \"\", line 975 in _find_and_load_unlocked\r\n File \"\", line 991 in _find_and_load\r\n File \"\", line 1014 in _gcd_import\r\n File \"/usr/local/opt/python@3.8/Frameworks/Python.framework/Versions/3.8/lib/python3.8/importlib/__init__.py\", line 127 in import_module\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/pathlib.py\", line 520 in import_path\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/python.py\", line 552 in _importtestmodule\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/python.py\", line 484 in _getobj\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/python.py\", line 288 in obj\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/python.py\", line 500 in _inject_setup_module_fixture\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/python.py\", line 487 in collect\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/runner.py\", line 324 in \r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/runner.py\", line 294 in from_call\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/runner.py\", line 324 in pytest_make_collect_report\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/callers.py\", line 187 in _multicall\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/manager.py\", line 84 in \r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/manager.py\", line 93 in _hookexec\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/hooks.py\", line 286 in __call__\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/runner.py\", line 441 in collect_one_node\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/main.py\", line 768 in genitems\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/main.py\", line 771 in genitems\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/main.py\", line 568 in _perform_collect\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/main.py\", line 516 in perform_collect\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/main.py\", line 306 in pytest_collection\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/callers.py\", line 187 in _multicall\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/manager.py\", line 84 in \r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/manager.py\", line 93 in _hookexec\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/hooks.py\", line 286 in __call__\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/main.py\", line 295 in _main\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/main.py\", line 240 in wrap_session\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/main.py\", line 289 in pytest_cmdline_main\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/callers.py\", line 187 in _multicall\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/manager.py\", line 84 in \r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/manager.py\", line 93 in _hookexec\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/pluggy/hooks.py\", line 286 in __call__\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/_pytest/config/__init__.py\", line 157 in main\r\n File \"run_tests.py\", line 3 in \r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/scalene/scalene_profiler.py\", line 1525 in main\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/scalene/__main__.py\", line 7 in main\r\n File \"/Users/simon/.local/share/virtualenvs/datasette-AWNrQs95/lib/python3.8/site-packages/scalene/__main__.py\", line 14 in \r\n File \"/usr/local/opt/python@3.8/Frameworks/Python.framework/Versions/3.8/lib/python3.8/runpy.py\", line 87 in _run_code\r\n 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\r\nScalene error: received signal SIGSEGV\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 803929694, "label": "Try profiling Datasette using scalene"}, "performed_via_github_app": null}
{"html_url": "https://github.com/simonw/datasette/issues/1219#issuecomment-775497449", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1219", "id": 775497449, "node_id": "MDEyOklzc3VlQ29tbWVudDc3NTQ5NzQ0OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-02-08T22:11:34Z", "updated_at": "2021-02-08T22:11:34Z", "author_association": "OWNER", "body": "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.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 803929694, "label": "Try profiling Datasette using scalene"}, "performed_via_github_app": null}
{"html_url": "https://github.com/dogsheep/pocket-to-sqlite/issues/9#issuecomment-774730656", "issue_url": "https://api.github.com/repos/dogsheep/pocket-to-sqlite/issues/9", "id": 774730656, "node_id": "MDEyOklzc3VlQ29tbWVudDc3NDczMDY1Ng==", "user": {"value": 635179, "label": "merwok"}, "created_at": "2021-02-07T18:45:04Z", "updated_at": "2021-02-07T18:45:04Z", "author_association": "NONE", "body": "That URL uses TLS 1.3, but maybe only if the client supports it.\r\nIt could be your Python version or your SSL library that\u2019s not recent enough.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 801780625, "label": "SSL Error"}, "performed_via_github_app": null}
{"html_url": "https://github.com/dogsheep/pocket-to-sqlite/issues/9#issuecomment-774726123", "issue_url": "https://api.github.com/repos/dogsheep/pocket-to-sqlite/issues/9", "id": 774726123, "node_id": "MDEyOklzc3VlQ29tbWVudDc3NDcyNjEyMw==", "user": {"value": 12669260, "label": "jfeiwell"}, "created_at": "2021-02-07T18:21:08Z", "updated_at": "2021-02-07T18:21:08Z", "author_association": "NONE", "body": "@simonw any ideas here?", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 801780625, "label": "SSL Error"}, "performed_via_github_app": null}
{"html_url": "https://github.com/simonw/datasette/issues/1217#issuecomment-774528913", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1217", "id": 774528913, "node_id": "MDEyOklzc3VlQ29tbWVudDc3NDUyODkxMw==", "user": {"value": 639730, "label": "virtadpt"}, "created_at": "2021-02-06T19:23:41Z", "updated_at": "2021-02-06T19:23:41Z", "author_association": "NONE", "body": "I've had a lot of success running it as an OpenFaaS lambda.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 802513359, "label": "Possible to deploy as a python app (for Rstudio connect server)?"}, "performed_via_github_app": null}
{"html_url": "https://github.com/simonw/datasette/issues/1217#issuecomment-774385092", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1217", "id": 774385092, "node_id": "MDEyOklzc3VlQ29tbWVudDc3NDM4NTA5Mg==", "user": {"value": 6165713, "label": "plpxsk"}, "created_at": "2021-02-06T02:49:11Z", "updated_at": "2021-02-06T02:49:11Z", "author_association": "NONE", "body": "A good reference seems to be the note to run `datasette` as a module in https://github.com/simonw/datasette/pull/556\r\n", "reactions": "{\"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 802513359, "label": "Possible to deploy as a python app (for Rstudio connect server)?"}, "performed_via_github_app": null}
{"html_url": "https://github.com/simonw/sqlite-utils/issues/223#issuecomment-774373829", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/223", "id": 774373829, "node_id": "MDEyOklzc3VlQ29tbWVudDc3NDM3MzgyOQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-02-06T01:39:47Z", "updated_at": "2021-02-06T01:39:47Z", "author_association": "OWNER", "body": "Documentation: https://sqlite-utils.datasette.io/en/stable/cli.html#cli-insert-csv-tsv-delimiter", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 788527932, "label": "--delimiter option for CSV import"}, "performed_via_github_app": null}
{"html_url": "https://github.com/simonw/datasette/issues/1208#issuecomment-774286962", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1208", "id": 774286962, "node_id": "MDEyOklzc3VlQ29tbWVudDc3NDI4Njk2Mg==", "user": {"value": 4488943, "label": "kbaikov"}, "created_at": "2021-02-05T21:02:39Z", "updated_at": "2021-02-05T21:02:39Z", "author_association": "CONTRIBUTOR", "body": "@simonw could you please take a look at the PR 1211 that fixes this issue?", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 794554881, "label": "A lot of open(file) functions are used without a context manager thus producing ResourceWarning: unclosed file <_io.TextIOWrapper"}, "performed_via_github_app": null}
{"html_url": "https://github.com/simonw/sqlite-utils/pull/203#issuecomment-774217792", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/203", "id": 774217792, "node_id": "MDEyOklzc3VlQ29tbWVudDc3NDIxNzc5Mg==", "user": {"value": 1049910, "label": "drkane"}, "created_at": "2021-02-05T18:44:13Z", "updated_at": "2021-02-05T18:44:13Z", "author_association": "NONE", "body": "Thanks for looking at this - home schooling kids has prevented me from replying. \r\n\r\nI'd struggled with how to adapt the API for the foreign keys too - I definitely tried the String/Tuple approach. I hadn't considered the breaking changes that would introduce though. I can take a look at this and try and make the change - see which of your options works best.\r\n\r\nI've got a workaround for the use-case I was looking at this for, so it wouldn't be a problem for me if it was put on the back burner until a hypothetical v4.0 anyway.\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 743384829, "label": "changes to allow for compound foreign keys"}, "performed_via_github_app": null}
{"html_url": "https://github.com/simonw/datasette/issues/1210#issuecomment-773977128", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1210", "id": 773977128, "node_id": "MDEyOklzc3VlQ29tbWVudDc3Mzk3NzEyOA==", "user": {"value": 525780, "label": "heyarne"}, "created_at": "2021-02-05T11:30:34Z", "updated_at": "2021-02-05T11:30:34Z", "author_association": "NONE", "body": "Thanks for your quick reply! Having changed my `metadata.yml`, queries AND database I can't really reproduce it anymore, sorry. But at least I'm happy to say that it works now! :) Thanks again for the super nifty tool, very appreciated.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 796234313, "label": "Immutable Database w/ Canned Queries"}, "performed_via_github_app": null}
{"html_url": "https://github.com/simonw/datasette/issues/1216#issuecomment-772796111", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1216", "id": 772796111, "node_id": "MDEyOklzc3VlQ29tbWVudDc3Mjc5NjExMQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-02-03T20:20:48Z", "updated_at": "2021-02-03T20:20:48Z", "author_association": "OWNER", "body": "Relevant code: https://github.com/simonw/datasette/blob/1600d2a3ec3ada1f6fb5b1eb73bdaeccb5f80530/datasette/app.py#L620-L632", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 800669347, "label": "/-/databases should reflect connection order, not alphabetical order"}, "performed_via_github_app": null}
{"html_url": "https://github.com/dogsheep/twitter-to-sqlite/issues/56#issuecomment-772408273", "issue_url": "https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/56", "id": 772408273, "node_id": "MDEyOklzc3VlQ29tbWVudDc3MjQwODI3Mw==", "user": {"value": 42315895, "label": "gsajko"}, "created_at": "2021-02-03T10:36:36Z", "updated_at": "2021-02-03T10:36:36Z", "author_association": "NONE", "body": "I figured it out.\r\nThose tweets are in database, because somebody quote tweeted them, or retweeted them.\r\nAnd if you grab quoted tweet or reweeted tweet from other tweet json, It doesn't grab all of the details.\r\n\r\nSo if someone quote tweeted a quote tweet, the second quote tweet won't have `quoted_status`. \r\n\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 796736607, "label": "Not all quoted statuses get fetched?"}, "performed_via_github_app": null}
{"html_url": "https://github.com/simonw/datasette/issues/1212#issuecomment-772007663", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1212", "id": 772007663, "node_id": "MDEyOklzc3VlQ29tbWVudDc3MjAwNzY2Mw==", "user": {"value": 4488943, "label": "kbaikov"}, "created_at": "2021-02-02T21:36:56Z", "updated_at": "2021-02-02T21:36:56Z", "author_association": "CONTRIBUTOR", "body": "How do you get 4-5 minutes?\r\nI run my tests in WSL 2, so may be i need to try a real linux VM.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 797651831, "label": "Tests are very slow. "}, "performed_via_github_app": null}
{"html_url": "https://github.com/simonw/datasette/issues/1214#issuecomment-772001787", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1214", "id": 772001787, "node_id": "MDEyOklzc3VlQ29tbWVudDc3MjAwMTc4Nw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-02-02T21:28:53Z", "updated_at": "2021-02-02T21:28:53Z", "author_association": "OWNER", "body": "Fix is now live on https://latest.datasette.io/fixtures/searchable?_search=terry - clearing \"terry\" and re-submitting the form now works as expected.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 799693777, "label": "Re-submitting filter form duplicates _x querystring arguments"}, "performed_via_github_app": null}