{"html_url": "https://github.com/simonw/sqlite-utils/issues/595#issuecomment-1733312349", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/595", "id": 1733312349, "node_id": "IC_kwDOCGYnMM5nUD9d", "user": {"value": 123451970, "label": "cycle-data"}, "created_at": "2023-09-25T09:38:13Z", "updated_at": "2023-09-25T09:38:57Z", "author_association": "NONE", "body": "Never mind\r\n\r\nWhen I created the connection using \r\n`sqlite_utils.Database(path)`\r\n\r\nI just needed to add the following statement right after and it did the trick\r\n\r\n`self.db.conn.execute(\"PRAGMA foreign_keys = ON\")`\r\n\r\nHope this helps people in the future \ud83d\udc4d ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1907281675, "label": "Cascading DELETE not working with Table.delete(pk)"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/425#issuecomment-1129332959", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/425", "id": 1129332959, "node_id": "IC_kwDOCGYnMM5DUEDf", "user": {"value": 102771161, "label": "McEazy2700"}, "created_at": "2022-05-17T21:27:02Z", "updated_at": "2022-05-17T21:27:02Z", "author_association": "NONE", "body": "Hi, I'm trying to deploy my site using elasticbeanstalk and I keep getting this same error :\r\ndeterministic=True requires SQLite 3.8.3 or higher\r\n\r\nI saw your previous solution that involves editing sqlite-utils/sqlite_utils/db.py file, but I'm curious as to how that will work in production.", "reactions": "{\"total_count\": 5, \"+1\": 5, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1203842656, "label": "`sqlite3.NotSupportedError`: deterministic=True requires SQLite 3.8.3 or higher"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1426#issuecomment-985982668", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1426", "id": 985982668, "node_id": "IC_kwDOBm6k_c46xObM", "user": {"value": 95520595, "label": "knowledgecamp12"}, "created_at": "2021-12-04T07:11:29Z", "updated_at": "2021-12-04T07:11:29Z", "author_association": "NONE", "body": "You can generate xml site map from the online tools using https://tools4seo.site/xml-sitemap-generator. ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 964322136, "label": "Manage /robots.txt in Datasette core, block robots by default"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/425#issuecomment-1509951952", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/425", "id": 1509951952, "node_id": "IC_kwDOCGYnMM5aAAnQ", "user": {"value": 89400147, "label": "Dhyanesh97"}, "created_at": "2023-04-15T20:14:58Z", "updated_at": "2023-04-15T20:14:58Z", "author_association": "NONE", "body": "is this change released ? Because when we run docker containers issue still persists for production deployments.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1203842656, "label": "`sqlite3.NotSupportedError`: deterministic=True requires SQLite 3.8.3 or higher"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2031#issuecomment-1483248966", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2031", "id": 1483248966, "node_id": "IC_kwDOBm6k_c5YaJVG", "user": {"value": 82332573, "label": "tmcl-it"}, "created_at": "2023-03-24T18:35:24Z", "updated_at": "2023-03-24T18:35:24Z", "author_association": "NONE", "body": "I've rebased my patch on the latest main. It should be ready to merge.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1605481359, "label": "Expand foreign key references in row view as well"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2031#issuecomment-1457243738", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2031", "id": 1457243738, "node_id": "IC_kwDOBm6k_c5W28Za", "user": {"value": 82332573, "label": "tmcl-it"}, "created_at": "2023-03-07T00:05:25Z", "updated_at": "2023-03-07T00:12:09Z", "author_association": "NONE", "body": "I've implemented the test (thanks for pointing me in the right direction!).\r\n\r\nAt [tmcl-it/datasette:0.64.1+row-view-expand-labels](https://github.com/tmcl-it/datasette/tree/0.64.1%2Brow-view-expand-labels) I also have a variant of this patch that applies to the 0.64.x branch. Please let me know if you'd be interested in merging that as well and I'll open another PR.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1605481359, "label": "Expand foreign key references in row view as well"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2023#issuecomment-1425988018", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2023", "id": 1425988018, "node_id": "IC_kwDOBm6k_c5U_tmy", "user": {"value": 80409402, "label": "mlaparie"}, "created_at": "2023-02-10T15:39:59Z", "updated_at": "2023-02-10T15:39:59Z", "author_association": "NONE", "body": "Thanks for confirming my doubts! I removed it after opening this issue, yup, then had another issue with `default_cache_ttl_hashed` which I assume was removed at the same time. Sorry for not trying that before opening the issue.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1579695809, "label": "Error: Invalid setting 'hash_urls' in settings.json in 0.64.1"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/433#issuecomment-1640826795", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/433", "id": 1640826795, "node_id": "IC_kwDOCGYnMM5hzQer", "user": {"value": 76528036, "label": "J450n-4-W"}, "created_at": "2023-07-18T19:08:50Z", "updated_at": "2023-07-18T19:08:50Z", "author_association": "NONE", "body": "Came here to report this, but instead I'll confirm the issue across two terminal emulators (Gnome Terminal and Alacritty) on Pop_OS! 22.04 (currently based on Ubuntu/Gnome). Also messes up the formatting of the terminal. Can also confirm that reset fixes it until the next sqlite-utils command. ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1239034903, "label": "CLI eats my cursor"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1479#issuecomment-930071625", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1479", "id": 930071625, "node_id": "IC_kwDOBm6k_c43b8RJ", "user": {"value": 76450761, "label": "kirajano"}, "created_at": "2021-09-29T11:01:30Z", "updated_at": "2021-09-29T11:01:30Z", "author_association": "NONE", "body": "Thanks, but this one has a different error type. Unfortunately, still not working.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1010112818, "label": "Win32 \"used by another process\" error with datasette publish"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/370#issuecomment-1261930179", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/370", "id": 1261930179, "node_id": "IC_kwDOBm6k_c5LN4bD", "user": {"value": 72577720, "label": "MichaelTiemannOSC"}, "created_at": "2022-09-29T08:17:46Z", "updated_at": "2022-09-29T08:17:46Z", "author_association": "CONTRIBUTOR", "body": "Just watched this video which demonstrates the integration of *any* webapp into JupyterLab: https://youtu.be/FH1dKKmvFtc\r\n\r\nMaybe this is the answer?", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 377155320, "label": "Integration with JupyterLab"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1396#issuecomment-946467547", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1396", "id": 946467547, "node_id": "IC_kwDOBm6k_c44afLb", "user": {"value": 72577720, "label": "MichaelTiemannOSC"}, "created_at": "2021-10-19T08:10:26Z", "updated_at": "2021-10-19T08:10:26Z", "author_association": "CONTRIBUTOR", "body": "Now that 0.59 has excellent annotated release notes, you can re-confirm this is fixed by updating the published Docker image and checking that these fixes still work ;-)", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 944903881, "label": "\"invalid reference format\" publishing Docker image"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1826#issuecomment-1260373403", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1826", "id": 1260373403, "node_id": "IC_kwDOBm6k_c5LH8Wb", "user": {"value": 66709385, "label": "pjamargh"}, "created_at": "2022-09-28T04:30:27Z", "updated_at": "2022-09-28T04:30:27Z", "author_association": "NONE", "body": "I'm glad the bug report served some purpose. Frankly I just needed the\nmethod signature, that is why the documentation you mention wasn't read.\n\nOn Tue, Sep 27, 2022, 9:05 PM Simon Willison ***@***.***>\nwrote:\n\n> Though now I notice that the copy right there needs to be updated to\n> reflect the new row parameter to render_cell!\n>\n> \u2014\n> Reply to this email directly, view it on GitHub\n> ,\n> or unsubscribe\n> \n> .\n> You are receiving this because you authored the thread.Message ID:\n> ***@***.***>\n>\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1388631785, "label": "render_cell documentation example doesn't match the method signature"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/319#issuecomment-905024066", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/319", "id": 905024066, "node_id": "IC_kwDOCGYnMM418ZJC", "user": {"value": 66709385, "label": "pjamargh"}, "created_at": "2021-08-24T22:41:39Z", "updated_at": "2021-08-24T22:41:39Z", "author_association": "NONE", "body": "I'm happy with this functionality left the way you describe. In my case the data is homogeneous but other cases would work just by being consistent on the encoding. Thanks a lot, Simon!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 976399638, "label": "[Enhancement] Please allow 'insert-files' to insert content as text."}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/319#issuecomment-905021010", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/319", "id": 905021010, "node_id": "IC_kwDOCGYnMM418YZS", "user": {"value": 66709385, "label": "pjamargh"}, "created_at": "2021-08-24T22:33:42Z", "updated_at": "2021-08-24T22:33:42Z", "author_association": "NONE", "body": "Oh, I misread. Yes some files will not be valid UTF-8, I'd throw a warning and continue (not adding that file) but if you want to get more elaborate you could allow to define a policy on what to do. Not adding the file, index binary content or use a conversion policy like the ones available on Python's decode.\r\n\r\nFrom https://stackoverflow.com/questions/24616678/unicodedecodeerror-in-python-when-reading-a-file-how-to-ignore-the-error-and-ju :\r\n - 'ignore' ignores errors. Note that ignoring encoding errors can lead to data loss.\r\n - 'replace' causes a replacement marker (such as '?') to be inserted where there is malformed data.\r\n - 'surrogateescape' will represent any incorrect bytes as code points in the Unicode Private Use Area ranging from U+DC80 to U+DCFF. These private code points will then be turned back into the same bytes when the surrogateescape error handler is used when writing data. This is useful for processing files in an unknown encoding.\r\n - 'xmlcharrefreplace' is only supported when writing to a file. Characters not supported by the encoding are replaced with the appropriate XML character reference &#nnn;.\r\n - 'backslashreplace' (also only supported when writing) replaces unsupported characters with Python\u2019s backslashed escape sequences.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 976399638, "label": "[Enhancement] Please allow 'insert-files' to insert content as text."}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/319#issuecomment-905003381", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/319", "id": 905003381, "node_id": "IC_kwDOCGYnMM418UF1", "user": {"value": 66709385, "label": "pjamargh"}, "created_at": "2021-08-24T21:56:49Z", "updated_at": "2021-08-24T21:56:49Z", "author_association": "NONE", "body": "I was thinking that an approach could be making FILE_COLUMNS a generator (_get_file_columns(mode)) or you can just have a different set of columns (is there something else that makes sense to be changed on the text scenario?).\r\n\r\nAbout UTF-8 I was referring to the encoding to use when reading files. This can be difficult to auto-detect but I believe that UTF-8 is pretty much the standard for text files.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 976399638, "label": "[Enhancement] Please allow 'insert-files' to insert content as text."}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/777#issuecomment-635513983", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/777", "id": 635513983, "node_id": "MDEyOklzc3VlQ29tbWVudDYzNTUxMzk4Mw==", "user": {"value": 63653929, "label": "thisismyfuckingusername"}, "created_at": "2020-05-28T18:16:49Z", "updated_at": "2020-05-28T18:16:49Z", "author_association": "NONE", "body": " think, because the given URL of the CSS file doesn't have any complete parameters after query \r\nTry to complete the parameter \r\n``", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 626171242, "label": "Error pages not correctly loading CSS"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/26#issuecomment-1170595021", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/26", "id": 1170595021, "node_id": "IC_kwDOCGYnMM5FxdzN", "user": {"value": 60892516, "label": "izzues"}, "created_at": "2022-06-29T23:35:29Z", "updated_at": "2022-06-29T23:35:29Z", "author_association": "NONE", "body": "Have you seen [MakeTypes](https://github.com/jvilk/MakeTypes)? Not the exact same thing but it may be relevant.\r\n\r\nAnd it's inspired by the paper [\"Types from Data: Making Structured Data First-Class Citizens in F#\"](https://dl.acm.org/citation.cfm?id=2908115).", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 455486286, "label": "Mechanism for turning nested JSON into foreign keys / many-to-many"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/394#issuecomment-642522285", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/394", "id": 642522285, "node_id": "MDEyOklzc3VlQ29tbWVudDY0MjUyMjI4NQ==", "user": {"value": 58298410, "label": "LVerneyPEReN"}, "created_at": "2020-06-11T09:15:19Z", "updated_at": "2020-06-11T09:15:19Z", "author_association": "NONE", "body": "Hi @wragge,\r\n\r\nThis looks great, thanks for the share! I refactored it into a self-contained function, binding on a random available TCP port (multi-user context). I am using subprocess API directly since the `%run` magic was leaving defunct process behind :/\r\n\r\n![image](https://user-images.githubusercontent.com/58298410/84367566-b5d0d500-abd4-11ea-96e2-f5c05a28e506.png)\r\n\r\n```python\r\nimport socket\r\n\r\nfrom signal import SIGINT\r\nfrom subprocess import Popen, PIPE\r\n\r\nfrom IPython.display import display, HTML\r\nfrom notebook.notebookapp import list_running_servers\r\n\r\n\r\ndef get_free_tcp_port():\r\n \"\"\"\r\n Get a free TCP port.\r\n \"\"\"\r\n tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\r\n tcp.bind(('', 0))\r\n _, port = tcp.getsockname()\r\n tcp.close()\r\n return port\r\n\r\n\r\ndef datasette(database):\r\n \"\"\"\r\n Run datasette on an SQLite database.\r\n \"\"\"\r\n # Get current running servers\r\n servers = list_running_servers()\r\n\r\n # Get the current base url\r\n base_url = next(servers)['base_url']\r\n\r\n # Get a free port\r\n port = get_free_tcp_port()\r\n\r\n # Create a base url for Datasette suing the proxy path\r\n proxy_url = f'{base_url}proxy/absolute/{port}/'\r\n\r\n # Display a link to Datasette\r\n display(HTML(f'

View Datasette (Click on the stop button to close the Datasette server)

'))\r\n\r\n # Launch Datasette\r\n with Popen(\r\n [\r\n 'python', '-m', 'datasette', '--',\r\n database,\r\n '--port', str(port),\r\n '--config', f'base_url:{proxy_url}'\r\n ],\r\n stdout=PIPE,\r\n stderr=PIPE,\r\n bufsize=1,\r\n universal_newlines=True\r\n ) as p:\r\n print(p.stdout.readline(), end='')\r\n while True:\r\n try:\r\n line = p.stderr.readline()\r\n if not line:\r\n break\r\n print(line, end='')\r\n exit_code = p.poll()\r\n except KeyboardInterrupt:\r\n p.send_signal(SIGINT)\r\n```\r\n\r\nIdeally, I'd like some extra magic to notify users when they are leaving the closing the notebook tab and make them terminate the running datasette processes. I'll be looking for it.", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 1, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 396212021, "label": "base_url configuration setting"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/394#issuecomment-641889565", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/394", "id": 641889565, "node_id": "MDEyOklzc3VlQ29tbWVudDY0MTg4OTU2NQ==", "user": {"value": 58298410, "label": "LVerneyPEReN"}, "created_at": "2020-06-10T09:49:34Z", "updated_at": "2020-06-10T09:49:34Z", "author_association": "NONE", "body": "Hi,\r\n\r\nI came across this issue while looking for a way to spawn Datasette as a SQLite files viewer in JupyterLab. I found https://github.com/simonw/jupyterserverproxy-datasette-demo which seems to be the most up to date proof of concept, but it seems to be failing to list the available db (at least in the Binder demo, https://hub.gke.mybinder.org/user/simonw-jupyters--datasette-demo-uw4dmlnn/datasette/, I only have `:memory`).\r\n\r\nDoes anyone tried to improve on this proof of concept to have a Datasette visualization for SQLite files?\r\n\r\nThanks!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 396212021, "label": "base_url configuration setting"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-590209074", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 590209074, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDIwOTA3NA==", "user": {"value": 58088336, "label": "tunguyenatwork"}, "created_at": "2020-02-24T08:20:15Z", "updated_at": "2020-02-24T08:20:15Z", "author_association": "NONE", "body": "Awesome, thank you so much. I\u2019ll try it out and let you know.\n\nOn Sun, Feb 23, 2020 at 1:44 PM Simon Willison \nwrote:\n\n> You can try this right now like so:\n>\n> pip install https://github.com/simonw/datasette/archive/search-raw.zip\n>\n> Then use the following:\n>\n> ?_search=foo*&_searchmode=raw`\n>\n> \u2014\n> You are receiving this because you authored the thread.\n> Reply to this email directly, view it on GitHub\n> ,\n> or unsubscribe\n> \n> .\n>\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-589922016", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 589922016, "node_id": "MDEyOklzc3VlQ29tbWVudDU4OTkyMjAxNg==", "user": {"value": 58088336, "label": "tunguyenatwork"}, "created_at": "2020-02-22T05:50:10Z", "updated_at": "2020-02-22T05:50:10Z", "author_association": "NONE", "body": "Thanks Simon,\r\nMy use case is using Datasette for full text search type ahead. That was working pretty well. The _search_wildcard= option will be awesome. Thanks\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/858#issuecomment-858831895", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/858", "id": 858831895, "node_id": "MDEyOklzc3VlQ29tbWVudDg1ODgzMTg5NQ==", "user": {"value": 56045588, "label": "rachelmarconi"}, "created_at": "2021-06-10T17:44:09Z", "updated_at": "2021-06-10T17:44:09Z", "author_association": "NONE", "body": "any fixes for that recursive issue with temp file? I get it using both heroku and cloudrun, although it seems to still publish and deploy fine", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 642388564, "label": "publish heroku does not work on Windows 10"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/858#issuecomment-858813675", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/858", "id": 858813675, "node_id": "MDEyOklzc3VlQ29tbWVudDg1ODgxMzY3NQ==", "user": {"value": 56045588, "label": "rachelmarconi"}, "created_at": "2021-06-10T17:27:46Z", "updated_at": "2021-06-10T17:27:46Z", "author_association": "NONE", "body": "shell=True is added to line 56 (I guess it used to be 54) of heroku.py as detailed in the original issue. (for posterity)", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 642388564, "label": "publish heroku does not work on Windows 10"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1241#issuecomment-1692322342", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1241", "id": 1692322342, "node_id": "IC_kwDOBm6k_c5k3som", "user": {"value": 52261150, "label": "publicmatt"}, "created_at": "2023-08-24T19:56:15Z", "updated_at": "2023-08-24T20:09:52Z", "author_association": "NONE", "body": "Something to think about, but I hate how long the url is when sharing a custom SQL query. Would it be possible to hash the query and state of a page instead so the url is more manageable? The mapping from hash to query would have to be stored in order to recover/lookup the page after sharing.\r\n\r\nIt's not uncommon to have things like this currently:\r\n\r\n```https://global-power-plants.datasettes.com/global-power-plants?sql=select+rowid%2C+country%2C+country_long%2C+name%2C+gppd_idnr%2C+capacity_mw%2C+latitude%2C+longitude%2C+primary_fuel%2C+other_fuel1%2C+other_fuel2%2C+other_fuel3%2C+commissioning_year%2C+owner%2C+source%2C+url%2C+geolocation_source%2C+wepp_id%2C+year_of_capacity_data%2C+generation_gwh_2013%2C+generation_gwh_2014%2C+generation_gwh_2015%2C+generation_gwh_2016%2C+generation_gwh_2017%2C+generation_gwh_2018%2C+generation_gwh_2019%2C+generation_data_source%2C+estimated_generation_gwh_2013%2C+estimated_generation_gwh_2014%2C+estimated_generation_gwh_2015%2C+estimated_generation_gwh_2016%2C+estimated_generation_gwh_2017%2C+estimated_generation_note_2013%2C+estimated_generation_note_2014%2C+estimated_generation_note_2015%2C+estimated_generation_note_2016%2C+estimated_generation_note_2017+from+%5Bglobal-power-plants%5D+order+by+rowid+limit+101```\r\n\r\nI'm thinking a plugin like [https://datasette.io/plugins/datasette-query-files](https://datasette.io/plugins/datasette-query-files), but could be created and managed from the UI (with the right permissions).", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 814595021, "label": "Share button for copying current URL"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/670#issuecomment-848425056", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/670", "id": 848425056, "node_id": "MDEyOklzc3VlQ29tbWVudDg0ODQyNTA1Ng==", "user": {"value": 52261150, "label": "publicmatt"}, "created_at": "2021-05-26T03:22:32Z", "updated_at": "2021-05-26T03:22:32Z", "author_association": "NONE", "body": "I've also been investigating serving postgresql databases over postgrest. I like the idea of hosting some static html + js on github, but having it backed by datasets I can update and control on the database server. I started from SQLite + datasette but would like to host larger datasets (with smaller materialized views exposed publicly). I think the postgrest model where all the authorization and ownership is defined in database role grants is really powerful. But I really miss being able to define an ad-hoc query in sql, then instantly link to a json representation of it like datasette does.\r\n\r\nP.S.: I've been sort of following along as you pop up in hacker news here and there. It's been great! Thanks for doing this all out in the open!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 564833696, "label": "Prototoype for Datasette on PostgreSQL"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/477#issuecomment-1238815924", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/477", "id": 1238815924, "node_id": "IC_kwDOCGYnMM5J1tS0", "user": {"value": 49702524, "label": "thewchan"}, "created_at": "2022-09-07T01:46:24Z", "updated_at": "2022-09-07T01:46:24Z", "author_association": "NONE", "body": "Will do!", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1353441389, "label": "Conda Forge"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2202#issuecomment-1801876943", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2202", "id": 1801876943, "node_id": "IC_kwDOBm6k_c5rZnXP", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-11-08T13:19:00Z", "updated_at": "2023-11-08T13:19:00Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #2206.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1959278971, "label": "Bump the python-packages group with 1 update"}, "performed_via_github_app": "{\"id\": 29110, \"slug\": \"dependabot\", \"node_id\": \"MDM6QXBwMjkxMTA=\", \"owner\": {\"login\": \"github\", \"id\": 9919, \"node_id\": \"MDEyOk9yZ2FuaXphdGlvbjk5MTk=\", \"avatar_url\": \"https://avatars.githubusercontent.com/u/9919?v=4\", \"gravatar_id\": \"\", \"url\": \"https://api.github.com/users/github\", \"html_url\": \"https://github.com/github\", \"followers_url\": \"https://api.github.com/users/github/followers\", \"following_url\": \"https://api.github.com/users/github/following{/other_user}\", \"gists_url\": \"https://api.github.com/users/github/gists{/gist_id}\", \"starred_url\": \"https://api.github.com/users/github/starred{/owner}{/repo}\", \"subscriptions_url\": \"https://api.github.com/users/github/subscriptions\", \"organizations_url\": \"https://api.github.com/users/github/orgs\", \"repos_url\": \"https://api.github.com/users/github/repos\", \"events_url\": \"https://api.github.com/users/github/events{/privacy}\", \"received_events_url\": \"https://api.github.com/users/github/received_events\", \"type\": \"Organization\", \"site_admin\": false}, \"name\": \"Dependabot\", \"description\": \"\", \"external_url\": \"https://dependabot-api.githubapp.com\", \"html_url\": \"https://github.com/apps/dependabot\", \"created_at\": \"2019-04-16T22:34:25Z\", \"updated_at\": \"2023-10-12T13:35:09Z\", \"permissions\": {\"checks\": \"write\", \"contents\": \"write\", \"issues\": \"write\", \"members\": \"read\", \"metadata\": \"read\", \"pull_requests\": \"write\", \"statuses\": \"read\", \"vulnerability_alerts\": \"read\", \"workflows\": \"write\"}, \"events\": [\"check_suite\", \"issues\", \"issue_comment\", \"label\", \"pull_request\", \"pull_request_review\", \"pull_request_review_comment\", \"repository\"]}"} {"html_url": "https://github.com/simonw/datasette/pull/2200#issuecomment-1777228352", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2200", "id": 1777228352, "node_id": "IC_kwDOBm6k_c5p7lpA", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-10-24T13:40:25Z", "updated_at": "2023-10-24T13:40:25Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #2202.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1949756141, "label": "Bump the python-packages group with 1 update"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2182#issuecomment-1719451803", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2182", "id": 1719451803, "node_id": "IC_kwDOBm6k_c5mfMCb", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-09-14T13:27:26Z", "updated_at": "2023-09-14T13:27:26Z", "author_association": "CONTRIBUTOR", "body": "Looks like these dependencies are updatable in another way, so this is no longer needed.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1890593563, "label": "Bump the python-packages group with 2 updates"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2148#issuecomment-1696591957", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2148", "id": 1696591957, "node_id": "IC_kwDOBm6k_c5lH_BV", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-08-29T00:15:29Z", "updated_at": "2023-08-29T00:15:29Z", "author_association": "CONTRIBUTOR", "body": "This pull request was built based on a group rule. Closing it will not ignore any of these versions in future pull requests.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1859415334, "label": "Bump sphinx, furo, blacken-docs dependencies"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2152#issuecomment-1695736691", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2152", "id": 1695736691, "node_id": "IC_kwDOBm6k_c5lEuNz", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-08-28T13:49:35Z", "updated_at": "2023-08-28T13:49:35Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #2160.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1865174661, "label": "Bump the python-packages group with 3 updates"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2148#issuecomment-1689198413", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2148", "id": 1689198413, "node_id": "IC_kwDOBm6k_c5krx9N", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-08-23T02:57:55Z", "updated_at": "2023-08-23T02:57:55Z", "author_association": "CONTRIBUTOR", "body": "Looks like this PR has been edited by someone other than Dependabot. That means Dependabot can't rebase it - sorry!\n\nIf you're happy for Dependabot to recreate it from scratch, overwriting any edits, you can request `@dependabot recreate`.\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1859415334, "label": "Bump sphinx, furo, blacken-docs dependencies"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2144#issuecomment-1686366557", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2144", "id": 1686366557, "node_id": "IC_kwDOBm6k_c5kg-ld", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-08-21T13:48:15Z", "updated_at": "2023-08-21T13:48:15Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #2148.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1856760386, "label": "Bump the python-packages group with 3 updates"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2142#issuecomment-1683950031", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2142", "id": 1683950031, "node_id": "IC_kwDOBm6k_c5kXwnP", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-08-18T13:49:24Z", "updated_at": "2023-08-18T13:49:24Z", "author_association": "CONTRIBUTOR", "body": "Looks like these dependencies are updatable in another way, so this is no longer needed.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1854970601, "label": "Bump the python-packages group with 2 updates"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2141#issuecomment-1682256251", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2141", "id": 1682256251, "node_id": "IC_kwDOBm6k_c5kRTF7", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-08-17T13:07:43Z", "updated_at": "2023-08-17T13:07:43Z", "author_association": "CONTRIBUTOR", "body": "Looks like blacken-docs is updatable in another way, so this is no longer needed.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1853289039, "label": "Bump the python-packages group with 1 update"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2125#issuecomment-1668187546", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2125", "id": 1668187546, "node_id": "IC_kwDOBm6k_c5jboWa", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-08-07T16:20:26Z", "updated_at": "2023-08-07T16:20:26Z", "author_association": "CONTRIBUTOR", "body": "Looks like sphinx is up-to-date now, so this is no longer needed.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1833193570, "label": "Bump sphinx from 6.1.3 to 7.1.2"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2121#issuecomment-1668186872", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2121", "id": 1668186872, "node_id": "IC_kwDOBm6k_c5jboL4", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-08-07T16:20:19Z", "updated_at": "2023-08-07T16:20:19Z", "author_association": "CONTRIBUTOR", "body": "Looks like furo is up-to-date now, so this is no longer needed.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1824399610, "label": "Bump furo from 2023.3.27 to 2023.7.26"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2098#issuecomment-1668186815", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2098", "id": 1668186815, "node_id": "IC_kwDOBm6k_c5jboK_", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-08-07T16:20:18Z", "updated_at": "2023-08-07T16:20:18Z", "author_association": "CONTRIBUTOR", "body": "Looks like blacken-docs is up-to-date now, so this is no longer needed.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1796830110, "label": "Bump blacken-docs from 1.14.0 to 1.15.0"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2124#issuecomment-1662215579", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2124", "id": 1662215579, "node_id": "IC_kwDOBm6k_c5jE2Wb", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-08-02T13:28:43Z", "updated_at": "2023-08-02T13:28:43Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #2125.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1826424151, "label": "Bump sphinx from 6.1.3 to 7.1.1"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2107#issuecomment-1655678215", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2107", "id": 1655678215, "node_id": "IC_kwDOBm6k_c5ir6UH", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-07-28T13:23:16Z", "updated_at": "2023-07-28T13:23:16Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #2124.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1820346348, "label": "Bump sphinx from 6.1.3 to 7.1.0"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2077#issuecomment-1653652665", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2077", "id": 1653652665, "node_id": "IC_kwDOBm6k_c5ikLy5", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-07-27T13:40:52Z", "updated_at": "2023-07-27T13:40:52Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #2121.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1719759468, "label": "Bump furo from 2023.3.27 to 2023.5.20"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2075#issuecomment-1649849249", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2075", "id": 1649849249, "node_id": "IC_kwDOBm6k_c5iVrOh", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-07-25T13:28:35Z", "updated_at": "2023-07-25T13:28:35Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #2107.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1710164693, "label": "Bump sphinx from 6.1.3 to 7.0.1"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2068#issuecomment-1547911570", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2068", "id": 1547911570, "node_id": "IC_kwDOBm6k_c5cQ0GS", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-05-15T13:59:35Z", "updated_at": "2023-05-15T13:59:35Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #2075.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1690842199, "label": "Bump sphinx from 6.1.3 to 7.0.0"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2064#issuecomment-1529737426", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2064", "id": 1529737426, "node_id": "IC_kwDOBm6k_c5bLfDS", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-05-01T13:58:50Z", "updated_at": "2023-05-01T13:58:50Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #2068.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1683229834, "label": "Bump sphinx from 6.1.3 to 6.2.1"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2063#issuecomment-1521837780", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2063", "id": 1521837780, "node_id": "IC_kwDOBm6k_c5atWbU", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-04-25T13:57:52Z", "updated_at": "2023-04-25T13:57:52Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #2064.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1681339696, "label": "Bump sphinx from 6.1.3 to 6.2.0"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2014#issuecomment-1487999503", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2014", "id": 1487999503, "node_id": "IC_kwDOBm6k_c5YsRIP", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-03-29T06:09:11Z", "updated_at": "2023-03-29T06:09:11Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #2047.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1566081801, "label": "Bump black from 22.12.0 to 23.1.0"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/2043#issuecomment-1486944644", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2043", "id": 1486944644, "node_id": "IC_kwDOBm6k_c5YoPmE", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-03-28T13:58:20Z", "updated_at": "2023-03-28T13:58:20Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #2046.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1639446870, "label": "Bump furo from 2022.12.7 to 2023.3.23"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1982#issuecomment-1376620851", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1982", "id": 1376620851, "node_id": "IC_kwDOBm6k_c5SDZEz", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-01-10T02:03:18Z", "updated_at": "2023-01-10T02:03:18Z", "author_association": "CONTRIBUTOR", "body": "Looks like sphinx is up-to-date now, so this is no longer needed.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1525560504, "label": "Bump sphinx from 5.3.0 to 6.1.2"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1977#issuecomment-1375596856", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1977", "id": 1375596856, "node_id": "IC_kwDOBm6k_c5R_fE4", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-01-09T13:06:14Z", "updated_at": "2023-01-09T13:06:14Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #1982.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1522552817, "label": "Bump sphinx from 5.3.0 to 6.1.1"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1976#issuecomment-1373592231", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1976", "id": 1373592231, "node_id": "IC_kwDOBm6k_c5R31qn", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-01-06T13:02:15Z", "updated_at": "2023-01-06T13:02:15Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #1977.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1520712722, "label": "Bump sphinx from 5.3.0 to 6.1.0"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1974#issuecomment-1372188571", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1974", "id": 1372188571, "node_id": "IC_kwDOBm6k_c5Rye-b", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2023-01-05T13:02:40Z", "updated_at": "2023-01-05T13:02:40Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #1976.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1516376583, "label": "Bump sphinx from 5.3.0 to 6.0.0"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1685#issuecomment-1237381620", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1685", "id": 1237381620, "node_id": "IC_kwDOBm6k_c5JwPH0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2022-09-05T18:36:47Z", "updated_at": "2022-09-05T18:36:47Z", "author_association": "CONTRIBUTOR", "body": "Looks like jinja2 is no longer updatable, so this is no longer needed.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1180778860, "label": "Update jinja2 requirement from <3.1.0,>=2.10.3 to >=2.10.3,<3.2.0"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1799#issuecomment-1237381569", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1799", "id": 1237381569, "node_id": "IC_kwDOBm6k_c5JwPHB", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2022-09-05T18:36:42Z", "updated_at": "2022-09-05T18:36:42Z", "author_association": "CONTRIBUTOR", "body": "Looks like aiofiles is no longer updatable, so this is no longer needed.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1362242558, "label": "Update aiofiles requirement from <0.9,>=0.4 to >=0.4,<22.2"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1693#issuecomment-1168704157", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1693", "id": 1168704157, "node_id": "IC_kwDOBm6k_c5FqQKd", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2022-06-28T13:11:36Z", "updated_at": "2022-06-28T13:11:36Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #1763.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1184850337, "label": "Bump black from 22.1.0 to 22.3.0"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1753#issuecomment-1163091750", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1753", "id": 1163091750, "node_id": "IC_kwDOBm6k_c5FU18m", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2022-06-22T13:22:34Z", "updated_at": "2022-06-22T13:22:34Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #1760.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1261826957, "label": "Bump furo from 2022.4.7 to 2022.6.4.1"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1593#issuecomment-1031455498", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1593", "id": 1031455498, "node_id": "IC_kwDOBm6k_c49esMK", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2022-02-07T13:13:22Z", "updated_at": "2022-02-07T13:13:22Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #1631.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1101705012, "label": "Update pytest-asyncio requirement from <0.17,>=0.10 to >=0.10,<0.18"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1514#issuecomment-972852184", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1514", "id": 972852184, "node_id": "IC_kwDOBm6k_c45_IvY", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2021-11-18T13:11:15Z", "updated_at": "2021-11-18T13:11:15Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #1516.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1056117435, "label": "Bump black from 21.9b0 to 21.11b0"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1500#issuecomment-971568829", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1500", "id": 971568829, "node_id": "IC_kwDOBm6k_c456Pa9", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2021-11-17T13:13:58Z", "updated_at": "2021-11-17T13:13:58Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #1514.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1041158024, "label": "Bump black from 21.9b0 to 21.10b0"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1489#issuecomment-943594738", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1489", "id": 943594738, "node_id": "IC_kwDOBm6k_c44Phzy", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2021-10-14T18:04:13Z", "updated_at": "2021-10-14T18:04:13Z", "author_association": "CONTRIBUTOR", "body": "OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting `@dependabot ignore this major version` or `@dependabot ignore this minor version`. You can also ignore all major, minor, or patch releases for a dependency by adding an [`ignore` condition](https://docs.github.com/en/code-security/supply-chain-security/configuration-options-for-dependency-updates#ignore) with the desired `update_types` to your config file.\n\nIf you change your mind, just re-open this PR and I'll resolve any conflicts on it.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1026379132, "label": "Update pyyaml requirement from ~=5.3 to >=5.3,<7.0"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1489#issuecomment-943594735", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1489", "id": 943594735, "node_id": "IC_kwDOBm6k_c44Phzv", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2021-10-14T18:04:12Z", "updated_at": "2021-10-14T18:04:12Z", "author_association": "CONTRIBUTOR", "body": "Looks like this PR is closed. If you re-open it I'll rebase it as long as no-one else has edited it (you can use `@dependabot reopen` if the branch has been deleted).", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1026379132, "label": "Update pyyaml requirement from ~=5.3 to >=5.3,<7.0"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1453#issuecomment-919135732", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1453", "id": 919135732, "node_id": "IC_kwDOBm6k_c42yOX0", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2021-09-14T13:10:38Z", "updated_at": "2021-09-14T13:10:38Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #1471.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 982780906, "label": "Bump black from 21.7b0 to 21.8b0"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1318#issuecomment-838449572", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1318", "id": 838449572, "node_id": "MDEyOklzc3VlQ29tbWVudDgzODQ0OTU3Mg==", "user": {"value": 49699333, "label": "dependabot[bot]"}, "created_at": "2021-05-11T13:12:30Z", "updated_at": "2021-05-11T13:12:30Z", "author_association": "CONTRIBUTOR", "body": "Superseded by #1321.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 876431852, "label": "Bump black from 21.4b2 to 21.5b0"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/658#issuecomment-583177728", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/658", "id": 583177728, "node_id": "MDEyOklzc3VlQ29tbWVudDU4MzE3NzcyOA==", "user": {"value": 49656826, "label": "null92"}, "created_at": "2020-02-07T00:28:55Z", "updated_at": "2020-02-07T00:29:50Z", "author_association": "NONE", "body": "Simon,\r\n\r\nYes, there is an \"app.css\" on static folder, however, anyone modification I do on this .css, doesn't apply on the datasette.\r\n\r\nI'm using this command: datasette publish heroku _\"databases folder\"_ -n _\"herokuapp name\"_ --extra-options=\"--config sql_time_limit_ms:60000 --config max_returned_rows:10000 --config force_https_urls:1\" --template-dir _\"templates folder\"_ -m _\"metadata.json folder\"_", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 550293770, "label": "How do I use the app.css as style sheet?"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/616#issuecomment-551872999", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/616", "id": 551872999, "node_id": "MDEyOklzc3VlQ29tbWVudDU1MTg3Mjk5OQ==", "user": {"value": 49656826, "label": "null92"}, "created_at": "2019-11-08T15:31:33Z", "updated_at": "2019-11-08T15:31:33Z", "author_association": "NONE", "body": "Thank you so much, Simon!\r\n\r\nNow, I'm contacting Heroku's support team to find a way to update the Datasette version on bases.vortex.media.\r\n\r\nDo you know how to do it?", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 518506242, "label": "Datasette FTS detection bug"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/456#issuecomment-1190449764", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/456", "id": 1190449764, "node_id": "IC_kwDOCGYnMM5G9NJk", "user": {"value": 45919695, "label": "jcmkk3"}, "created_at": "2022-07-20T15:45:54Z", "updated_at": "2022-07-20T15:45:54Z", "author_association": "NONE", "body": "> hadley wickham's melt and reshape could be good inspo: http://had.co.nz/reshape/introduction.pdf\r\n\r\nNote that Hadley has since implemented `pivot_longer` and `pivot_wider` instead of the previous verbs/functions that he used. Those can be found in the tidyr package and are probably the best reference which includes all of the learnings from years of user feedback. https://tidyr.tidyverse.org/articles/pivot.html", "reactions": "{\"total_count\": 2, \"+1\": 2, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1310243385, "label": "feature request: pivot command"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/483#issuecomment-495034774", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/483", "id": 495034774, "node_id": "MDEyOklzc3VlQ29tbWVudDQ5NTAzNDc3NA==", "user": {"value": 45919695, "label": "jcmkk3"}, "created_at": "2019-05-23T01:38:32Z", "updated_at": "2019-05-23T01:43:04Z", "author_association": "NONE", "body": "I think that location information is one of the other common pieces of hierarchical data. At least one that is general enough that extra dimensions could be auto-generated.\r\n\r\nAlso, I think this is an awesome project. Thank you for creating this.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 447408527, "label": "Option to facet by date using month or year"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1415#issuecomment-1793787454", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1415", "id": 1793787454, "node_id": "IC_kwDOBm6k_c5q6wY-", "user": {"value": 45269373, "label": "jimmybutton"}, "created_at": "2023-11-05T16:44:49Z", "updated_at": "2023-11-05T16:46:59Z", "author_association": "NONE", "body": "thanks for documenting this @bendnorman! got stuck at exactly the same point `gcloud builds submit ... returned non-zero exit status 1`, without a clue why this was happening. i now managed to get the github action to deploy datasette by assigning the following roles to the service account: `roles/run.admin`, `roles/storage.admin`, `roles/cloudbuild.builds.builder`, `roles/viewer`, `roles/iam.serviceAccountUser`.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 959137143, "label": "feature request: document minimum permissions for service account for cloudrun"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/healthkit-to-sqlite/issues/14#issuecomment-1629123734", "issue_url": "https://api.github.com/repos/dogsheep/healthkit-to-sqlite/issues/14", "id": 1629123734, "node_id": "IC_kwDOC8tyDs5hGnSW", "user": {"value": 44622670, "label": "philipp-heinrich"}, "created_at": "2023-07-10T14:46:52Z", "updated_at": "2023-07-10T14:46:52Z", "author_association": "NONE", "body": "@simonw any chance to get this fixed soon? ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 771608692, "label": "UNIQUE constraint failed: workouts.id"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/twitter-to-sqlite/issues/62#issuecomment-1049775451", "issue_url": "https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/62", "id": 1049775451, "node_id": "IC_kwDODEm0Qs4-kk1b", "user": {"value": 43036882, "label": "miuku"}, "created_at": "2022-02-24T11:43:31Z", "updated_at": "2022-02-24T11:43:31Z", "author_association": "NONE", "body": "i seem to have fixed this issue by applying for [elevated API access](https://developer.twitter.com/en/portal/products/elevated)", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1088816961, "label": "KeyError: 'created_at' for private accounts?"}, "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/dogsheep/twitter-to-sqlite/issues/56#issuecomment-769973212", "issue_url": "https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/56", "id": 769973212, "node_id": "MDEyOklzc3VlQ29tbWVudDc2OTk3MzIxMg==", "user": {"value": 42315895, "label": "gsajko"}, "created_at": "2021-01-29T18:29:02Z", "updated_at": "2021-01-29T18:31:55Z", "author_association": "NONE", "body": "I think it was with `twitter-to-sqlite home-timeline home.db -a auth.json --since`\r\nand Im using only this command to grab tweets \r\n\r\nfrom cron tab\r\n`2,7,12,17,22,27,32,37,42,47,52,57 * * * * run-one /home/gsajko/miniconda3/bin/twitter-to-sqlite home-timeline /home/gsajko/work/custom_twitter_feed/home.db -a /home/gsajko/work/custom_twitter_feed/auth/auth.json --since`\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/dogsheep/apple-notes-to-sqlite/issues/8#issuecomment-1468898285", "issue_url": "https://api.github.com/repos/dogsheep/apple-notes-to-sqlite/issues/8", "id": 1468898285, "node_id": "IC_kwDOJHON9s5XjZvt", "user": {"value": 41546558, "label": "RhetTbull"}, "created_at": "2023-03-14T22:00:21Z", "updated_at": "2023-03-14T22:00:21Z", "author_association": "NONE", "body": "Well that's embarrassing. I made a fork using macnotesapp and it's actually slower. This is because the Scripting Bridge sometimes fails to return the folder and thus macnotesapp resorts to AppleScript in this situation. The repeated AppleScript calls on a large library are slower than your \"slurp it all in\" approach. I've got some ideas about how to improve this--will make another attempt if I can fix the issues.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1617823309, "label": "Increase performance using macnotesapp"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/3#issuecomment-934372104", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/3", "id": 934372104, "node_id": "IC_kwDOD079W843sWMI", "user": {"value": 41546558, "label": "RhetTbull"}, "created_at": "2021-10-05T12:38:24Z", "updated_at": "2021-10-05T12:38:24Z", "author_association": "CONTRIBUTOR", "body": "As dogsheep-photos already uses [osxphotos](https://github.com/RhetTbull/osxphotos) to load photos you can access the EXIF data via osxphotos. Apple Photos imports a small subset of EXIF data at the time the photo is imported and osxphotos provides this via the [exif_info](https://github.com/RhetTbull/osxphotos#exifinfo) property. If you want the full EXIF data, osxphotos also provides a wrapper around [exiftool](https://github.com/RhetTbull/osxphotos#exiftool).", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 602533481, "label": "Import EXIF data into SQLite - lens used, ISO, aperture etc"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/33#issuecomment-778246347", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/33", "id": 778246347, "node_id": "MDEyOklzc3VlQ29tbWVudDc3ODI0NjM0Nw==", "user": {"value": 41546558, "label": "RhetTbull"}, "created_at": "2021-02-12T15:00:43Z", "updated_at": "2021-02-12T15:00:43Z", "author_association": "CONTRIBUTOR", "body": "Yes, Big Sur Photos database doesn't have `ZGENERICASSET` table. PR #31 will fix this.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 803338729, "label": "photo-to-sqlite: command not found"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/dogsheep-photos/pull/31#issuecomment-748562330", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/31", "id": 748562330, "node_id": "MDEyOklzc3VlQ29tbWVudDc0ODU2MjMzMA==", "user": {"value": 41546558, "label": "RhetTbull"}, "created_at": "2020-12-20T04:45:08Z", "updated_at": "2020-12-20T04:45:08Z", "author_association": "CONTRIBUTOR", "body": "Fixes the issue mentioned here: https://github.com/dogsheep/dogsheep-photos/issues/15#issuecomment-748436115", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 771511344, "label": "Update for Big Sur"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/15#issuecomment-748562288", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/15", "id": 748562288, "node_id": "MDEyOklzc3VlQ29tbWVudDc0ODU2MjI4OA==", "user": {"value": 41546558, "label": "RhetTbull"}, "created_at": "2020-12-20T04:44:22Z", "updated_at": "2020-12-20T04:44:22Z", "author_association": "CONTRIBUTOR", "body": "@nickvazz @simonw I opened a [PR](https://github.com/dogsheep/dogsheep-photos/pull/31) that replaces the SQL for `ZCOMPUTEDASSETATTRIBUTES` to use osxphotos which now exposes all this data and has been updated for Big Sur. I did regression tests to confirm the extracted data is identical, with one exception which should not affect operation: the old code pulled data from `ZCOMPUTEDASSETATTRIBUTES` for missing photos while the main loop ignores missing photos and does not add them to `apple_photos`. The new code does not add rows to the `apple_photos_scores` table for missing photos.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 612151767, "label": "Expose scores from ZCOMPUTEDASSETATTRIBUTES"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/15#issuecomment-748436779", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/15", "id": 748436779, "node_id": "MDEyOklzc3VlQ29tbWVudDc0ODQzNjc3OQ==", "user": {"value": 41546558, "label": "RhetTbull"}, "created_at": "2020-12-19T07:49:00Z", "updated_at": "2020-12-19T07:49:00Z", "author_association": "CONTRIBUTOR", "body": "@nickvazz ZGENERICASSET changed to ZASSET in Big Sur. Here's a list of other changes to the schema in Big Sur: https://github.com/RhetTbull/osxphotos/wiki/Changes-in-Photos-6---Big-Sur", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 612151767, "label": "Expose scores from ZCOMPUTEDASSETATTRIBUTES"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/22#issuecomment-628405453", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/22", "id": 628405453, "node_id": "MDEyOklzc3VlQ29tbWVudDYyODQwNTQ1Mw==", "user": {"value": 41546558, "label": "RhetTbull"}, "created_at": "2020-05-14T05:59:53Z", "updated_at": "2020-05-14T05:59:53Z", "author_association": "CONTRIBUTOR", "body": "I've added support for the above exif data to [v0.28.17](https://github.com/RhetTbull/osxphotos/releases/tag/v0.28.17) of osxphotos. `PhotoInfo.exif_info` will return an `ExifInfo` [dataclass](https://docs.python.org/3/library/dataclasses.html) object with the following properties:\r\n\r\n```python\r\n flash_fired: bool\r\n iso: int\r\n metering_mode: int\r\n sample_rate: int\r\n track_format: int\r\n white_balance: int\r\n aperture: float\r\n bit_rate: float\r\n duration: float\r\n exposure_bias: float\r\n focal_length: float\r\n fps: float\r\n latitude: float\r\n longitude: float\r\n shutter_speed: float\r\n camera_make: str\r\n camera_model: str\r\n codec: str\r\n lens_model: str\r\n```\r\n\r\nIt's not all the EXIF data available in most files but is the data Photos deems important to save. Of course, you can get all the exif_data\r\n\r\nNote: this only works in Photos 5. As best as I can tell, EXIF data is not stored in the database for earlier versions. ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 615626118, "label": "Try out ExifReader"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/22#issuecomment-627007458", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/22", "id": 627007458, "node_id": "MDEyOklzc3VlQ29tbWVudDYyNzAwNzQ1OA==", "user": {"value": 41546558, "label": "RhetTbull"}, "created_at": "2020-05-11T22:51:52Z", "updated_at": "2020-05-11T22:52:26Z", "author_association": "CONTRIBUTOR", "body": "I'm not familiar with `ExifReader`. I wrote my own wrapper around `exiftool` because I wanted a simple way to write EXIF data when exporting photos (e.g. writing out to PersonInImage and keywords to IPTC:Keywords) and the existing python packages like [pyexiftool](https://github.com/smarnach/pyexiftool) didn't do quite what I wanted. If all you're after is the camera and shot info, that's available in `ZEXTENDEDATTRIBUTES` table. I've got an open issue [#11](https://github.com/RhetTbull/osxphotos/issues/11) to add this to osxphotos but it hasn't bubbled to the top of my backlog yet. \r\n\r\nosxphotos will give you the location info: `PhotoInfo.location` returns a tuple of (lat, lon) though this info is in ZEXTENDEDATTRIBUTES too (though it might not be correct as I believe Photos creates this table at import and the user might have changed the location of a photo, e.g. if camera didn't have GPS).\r\n\r\n```sql\r\nCREATE TABLE ZEXTENDEDATTRIBUTES (\r\n Z_PK INTEGER PRIMARY KEY, Z_ENT INTEGER, \r\n Z_OPT INTEGER, ZFLASHFIRED INTEGER, \r\n ZISO INTEGER, ZMETERINGMODE INTEGER, \r\n ZSAMPLERATE INTEGER, ZTRACKFORMAT INTEGER, \r\n ZWHITEBALANCE INTEGER, ZASSET INTEGER, \r\n ZAPERTURE FLOAT, ZBITRATE FLOAT, ZDURATION FLOAT, \r\n ZEXPOSUREBIAS FLOAT, ZFOCALLENGTH FLOAT, \r\n ZFPS FLOAT, ZLATITUDE FLOAT, ZLONGITUDE FLOAT, \r\n ZSHUTTERSPEED FLOAT, ZCAMERAMAKE VARCHAR, \r\n ZCAMERAMODEL VARCHAR, ZCODEC VARCHAR, \r\n ZLENSMODEL VARCHAR\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": 615626118, "label": "Try out ExifReader"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/22#issuecomment-626667235", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/22", "id": 626667235, "node_id": "MDEyOklzc3VlQ29tbWVudDYyNjY2NzIzNQ==", "user": {"value": 41546558, "label": "RhetTbull"}, "created_at": "2020-05-11T12:20:34Z", "updated_at": "2020-05-11T12:20:34Z", "author_association": "CONTRIBUTOR", "body": "@simonw FYI, osxphotos includes a built in ExifTool class that uses [exiftool](https://exiftool.org/) to read and write exif data. It's not exposed yet in the docs because I really only use it right now in the osphotos command line interface to write tags when exporting. In v0.28.16 (just pushed) I added an ExifTool.as_dict() method which will give you a dict with all the exif tags in a file. For example:\r\n\r\n```python\r\nimport osxphotos\r\nphotos = osxphotos.PhotosDB().photos()\r\nexiftool = osxphotos.exiftool.ExifTool(photos[0].path)\r\nexifdata = exiftool.as_dict()\r\ntags = exifdata[\"IPTC:Keywords\"]\r\n```\r\n\r\nNot as elegant perhaps as a python only implementation because ExifTool has to make subprocess calls to an external tool but exiftool is by far the best tool available for reading and writing EXIF data and it does support HEIC.\r\n\r\nAs for implementation, ExifTool uses a singleton pattern so the first time you instantiate it, it spawns an IPC to exiftool but then keeps it open and uses the same process for any subsequent calls (even on different files). ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 615626118, "label": "Try out ExifReader"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/21#issuecomment-626396379", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/21", "id": 626396379, "node_id": "MDEyOklzc3VlQ29tbWVudDYyNjM5NjM3OQ==", "user": {"value": 41546558, "label": "RhetTbull"}, "created_at": "2020-05-10T22:01:48Z", "updated_at": "2020-05-10T22:01:48Z", "author_association": "CONTRIBUTOR", "body": "Frustrates me when package authors create a \"drop in\" replacement with the same import name...this kind of thing has bitten me more than once! Would've been nicer I think for bpylist2 to do \"import bpylist2 as bpylist\"", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 615474990, "label": "bpylist.archiver.CircularReference: archive has a cycle with uid(13)"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/21#issuecomment-626395641", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/21", "id": 626395641, "node_id": "MDEyOklzc3VlQ29tbWVudDYyNjM5NTY0MQ==", "user": {"value": 41546558, "label": "RhetTbull"}, "created_at": "2020-05-10T21:55:54Z", "updated_at": "2020-05-10T21:55:54Z", "author_association": "CONTRIBUTOR", "body": "Did removing old bpylist solve the original problem or do you still have a photo that throws circular reference?", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 615474990, "label": "bpylist.archiver.CircularReference: archive has a cycle with uid(13)"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/21#issuecomment-626395507", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/21", "id": 626395507, "node_id": "MDEyOklzc3VlQ29tbWVudDYyNjM5NTUwNw==", "user": {"value": 41546558, "label": "RhetTbull"}, "created_at": "2020-05-10T21:54:45Z", "updated_at": "2020-05-10T21:54:45Z", "author_association": "CONTRIBUTOR", "body": "@simonw does Photos show valid reverse geolocation info? Are you sure you're using [bpylist2](https://github.com/xa4a/bpylist2) and not bpylist? They're both unfortunately imported as \"bpylist\" so if you somehow got the wrong (original bpylist) version installed, it could be the issue. ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 615474990, "label": "bpylist.archiver.CircularReference: archive has a cycle with uid(13)"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/21#issuecomment-626390317", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/21", "id": 626390317, "node_id": "MDEyOklzc3VlQ29tbWVudDYyNjM5MDMxNw==", "user": {"value": 41546558, "label": "RhetTbull"}, "created_at": "2020-05-10T21:11:24Z", "updated_at": "2020-05-10T21:50:58Z", "author_association": "CONTRIBUTOR", "body": "Ugh....Yeah, I think easiest is to catch the exception and return no place as you suggest. This particular bit of code involves un-archiving a serialized NSKeyedArchiver which uses an object table and it is certainly possible to create a circular reference that way. Because this is happening in the decode, the circular reference must be in the original data. Does Photos show valid reverse geolocation info for the photo in question? If so, Photos may be doing something beyond a simple decode of the binary plist. For now, I'll push a patch to catch the exception.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 615474990, "label": "bpylist.archiver.CircularReference: archive has a cycle with uid(13)"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/17#issuecomment-624284539", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/17", "id": 624284539, "node_id": "MDEyOklzc3VlQ29tbWVudDYyNDI4NDUzOQ==", "user": {"value": 41546558, "label": "RhetTbull"}, "created_at": "2020-05-05T20:20:05Z", "updated_at": "2020-05-05T20:20:05Z", "author_association": "CONTRIBUTOR", "body": "FYI, I've got an [issue](https://github.com/RhetTbull/osxphotos/issues/25) to make osxphotos cross-platform but it's low on my priority list. About 90% of the functionality could be done cross-platform but right now the MacOS specific stuff is embedded throughout and would take some work. Though I try to minimize it, there's sprinklings of ObjC & Applescript throughout osxphotos.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 612860531, "label": "Only install osxphotos if running on macOS"}, "performed_via_github_app": null} {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/16#issuecomment-623845014", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/16", "id": 623845014, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMzg0NTAxNA==", "user": {"value": 41546558, "label": "RhetTbull"}, "created_at": "2020-05-05T03:55:14Z", "updated_at": "2020-05-05T03:56:24Z", "author_association": "CONTRIBUTOR", "body": "I'm traveling w/o access to my Mac so can't help with any code right now. I suspected ZSCENEIDENTIFIER was a foreign key into one of these psi.sqlite tables. But looks like you're on to something connecting groups to assets. As for the UUID, I think there's two ints because each is 64-bits but UUIDs are 128-bits. Thus they need to be combined to get the 128 bit UUID. You might be able to use Apple's [NSUUID](https://developer.apple.com/documentation/foundation/nsuuid?language=objc), for example, by wrapping with pyObjC. Here's one [example](https://github.com/ronaldoussoren/pyobjc/blob/881c82a7ba90f193934b52b44143360c80dce5e5/pyobjc-framework-Cocoa/PyObjCTest/test_nsuuid.py) of using this in PyObjC's test suite. Interesting it's stored this way instead of a UUIDString as in Photos.sqlite. Perhaps it for faster indexing.\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": 612287234, "label": "Import machine-learning detected labels (dog, llama etc) from Apple Photos"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2067#issuecomment-1532304714", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2067", "id": 1532304714, "node_id": "IC_kwDOBm6k_c5bVR1K", "user": {"value": 39538958, "label": "justmars"}, "created_at": "2023-05-03T00:16:03Z", "updated_at": "2023-05-03T00:16:03Z", "author_association": "NONE", "body": "Curiously, after running commands on the database that was litestream-restored, datasette starts to work again, e.g.\r\n\r\n```sh\r\nlitestream restore -o data/db.sqlite s3://mytestbucketxx/db\r\ndatasette data/db.sqlite\r\n# fails (OperationalError described above)\r\n```\r\n\r\n```sh\r\nlitestream restore -o data/db.sqlite s3://mytestbucketxx/db\r\nsqlite-utils enable-wal data/db.sqlite\r\ndatasette data/db.sqlite\r\n# works\r\n```\r\n\r\n```sh\r\nlitestream restore -o data/db.sqlite s3://mytestbucketxx/db\r\nsqlite-utils optimize data/db.sqlite\r\ndatasette data/db.sqlite\r\n# works\r\n```\r\n\r\n```sh\r\nlitestream restore -o data/db.sqlite s3://mytestbucketxx/db\r\nsqlite3 data/db.sqlite \".clone test.db\"\r\ndatasette test.db\r\n# works\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1690765434, "label": "Litestream-restored db: errors on 3.11 and 3.10.8; but works on py3.10.7 and 3.10.6"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/496#issuecomment-1294408928", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/496", "id": 1294408928, "node_id": "IC_kwDOCGYnMM5NJxzg", "user": {"value": 39538958, "label": "justmars"}, "created_at": "2022-10-28T03:36:56Z", "updated_at": "2022-10-28T03:37:50Z", "author_association": "NONE", "body": "With respect to the typing of Table class itself, my interim solution:\r\n\r\n```python\r\nfrom sqlite_utils.db import Table\r\ndef tbl(self, table_name: str) -> Table:\r\n tbl = self.db[table_name]\r\n if isinstance(tbl, Table):\r\n return tbl\r\n raise Exception(f\"Missing {table_name=}\")\r\n```\r\n\r\nWith respect to @chapmanjacobd concern on the `DEFAULT` being an empty class, have also been using `# type: ignore`, e.g.\r\n\r\n```python\r\n@classmethod\r\ndef insert_list(cls, areas: list[str]):\r\n return meta.tbl(meta.Areas).insert_all(\r\n ({\"area\": a} for a in areas), ignore=True # type: ignore\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": 1393202060, "label": "devrel/python api: Pylance type hinting"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1082#issuecomment-721547177", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1082", "id": 721547177, "node_id": "MDEyOklzc3VlQ29tbWVudDcyMTU0NzE3Nw==", "user": {"value": 39538958, "label": "justmars"}, "created_at": "2020-11-04T06:52:30Z", "updated_at": "2020-11-04T06:53:16Z", "author_association": "NONE", "body": "I think I tried the same db size on the following scenarios in Digital Ocean:\r\n1. Basic ($5/month) with 512MB RAM\r\n2. Basic ($10/month) with 1GB RAM\r\n3. Pro ($12/month) with 1GB RAM\r\n\r\nAll such attempts conked out with \"out of memory\" errors", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 735852274, "label": "DigitalOcean buildpack memory errors for large sqlite db?"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/858#issuecomment-792230560", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/858", "id": 792230560, "node_id": "MDEyOklzc3VlQ29tbWVudDc5MjIzMDU2MA==", "user": {"value": 39445562, "label": "smithdc1"}, "created_at": "2021-03-07T07:14:58Z", "updated_at": "2021-03-07T07:14:58Z", "author_association": "NONE", "body": "To get it to work I had to:\n\n- add `shell=true` to the various commands in datasette \n\n- use the name argument of the publish command. (https://docs.datasette.io/en/stable/publish.html)\n\n\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 642388564, "label": "publish heroku does not work on Windows 10"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/858#issuecomment-699690034", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/858", "id": 699690034, "node_id": "MDEyOklzc3VlQ29tbWVudDY5OTY5MDAzNA==", "user": {"value": 39445562, "label": "smithdc1"}, "created_at": "2020-09-27T21:23:04Z", "updated_at": "2020-09-27T21:23:04Z", "author_association": "NONE", "body": "Hi Simon,\r\n\r\nThanks so much for all your work on datasette, it's an excellent project and I wish you all the best with it. I particularly enjoyed your talk at the Django London Meetup a short while back. \r\n\r\nI've been trying to publish to Heroku from Windows 10 and I was running into this error. I'm not sure why it can't be run without `shell=True` on Windows but this seems to help. With this change, I am able to publish if I pass in a `name` to the `publish` command. When a `name` is not passed the default of `datasette` is used and therefore this line here fails (as datasette at heroku already exists) and causes the recession error mentioned above.\r\n\r\nhttps://github.com/simonw/datasette/blob/9a6d0dce282e7fb58c5610e24c74098c923abfdc/datasette/publish/heroku.py#L126\r\n\r\nI tried to write a patch for this but I am really struggling with being on Windows (many of the tests seem to fail anyway?), and my lack of knowledge of Mock, so sorry for this. Hope this is of some help. ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 642388564, "label": "publish heroku does not work on Windows 10"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/246#issuecomment-801816980", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/246", "id": 801816980, "node_id": "MDEyOklzc3VlQ29tbWVudDgwMTgxNjk4MA==", "user": {"value": 37962604, "label": "polyrand"}, "created_at": "2021-03-18T10:40:32Z", "updated_at": "2021-03-18T10:43:04Z", "author_association": "NONE", "body": "I have found a similar problem, but I only when using that type of query (with `*` for doing a prefix search). I'm also building something on top of FTS5/sqlite-utils, and the way I decided to handle it was creating a specific function for prefixes. According to [the docs](https://www2.sqlite.org/fts5.html#fts5_prefix_queries), the query can be done in this 2 ways:\r\n\r\n```sql\r\n... MATCH '\"one two thr\" * '\r\n... MATCH 'one + two + thr*'\r\n```\r\n\r\nI thought I could build a query like the first one using this function:\r\n\r\n```python\r\ndef prefix(query: str):\r\n return f'\"{query}\" *'\r\n```\r\n\r\nAnd then I use the output of that function as the query parameter for the standard `.search()` method in sqlite-utils.\r\n\r\nHowever, my use case is different because I'm the one \"deciding\" when to use a prefix search, not the end user. I also haven't done many tests, but maybe you found that useful. One thing I could think of is checking if the query has an `*` at the end, remove it and build the prefix query using the function above.\r\n\r\nThis is just for prefix queries, I think having the escaping function is still useful for other use cases.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 831751367, "label": "Escaping FTS search strings"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/242#issuecomment-787150276", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/242", "id": 787150276, "node_id": "MDEyOklzc3VlQ29tbWVudDc4NzE1MDI3Ng==", "user": {"value": 37962604, "label": "polyrand"}, "created_at": "2021-02-27T21:27:26Z", "updated_at": "2021-02-27T21:27:26Z", "author_association": "NONE", "body": "I had this resource by Seth Michael Larson saved https://github.com/sethmlarson/pycon-async-sync-poster I haven't had a look at it, but it may contain useful info.\r\n\r\nOn twitter, I mentioned passing an aiosqlite connection during the `Database` creation. I'm not 100% familiar with the `sqlite-utils` codebase, so I may be wrong here, but maybe decorating internal functions could be an option? Then they are awaited or not inside the decorator depending on how they are called.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 817989436, "label": "Async support"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/pull/224#issuecomment-765678057", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/224", "id": 765678057, "node_id": "MDEyOklzc3VlQ29tbWVudDc2NTY3ODA1Nw==", "user": {"value": 37962604, "label": "polyrand"}, "created_at": "2021-01-22T20:53:06Z", "updated_at": "2021-01-23T20:13:27Z", "author_association": "NONE", "body": "I'm using the FTS methods in sqlite-utils for this website: [drwn.io](https://drwn.io/). I wanted to get pagination to have some kind of infinite scrolling in the landing page, and I ended up using that.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 792297010, "label": "Add fts offset docs."}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1272#issuecomment-1199115002", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1272", "id": 1199115002, "node_id": "IC_kwDOBm6k_c5HeQr6", "user": {"value": 37748899, "label": "xmichele"}, "created_at": "2022-07-29T10:22:58Z", "updated_at": "2022-07-29T10:22:58Z", "author_association": "NONE", "body": "> test_dockerfile.py\r\n\r\n\r\n\r\n> I'm skipping this for the moment because the new Dockerfile shape introduced in [#1249 (comment)](https://github.com/simonw/datasette/issues/1249#issuecomment-804404544) isn't compatible with this technique, since it installs Datasette from PyPI rather than directly from the repo.\r\n> \r\n> Will need to change that if I want to do this unit tests thing.\r\n\r\nHello,\r\ncan't you copy in a later step directly in the output directory, e.g. COPY test_dockerfile.py /usr/lib/python*/.. or something like that ? ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 838245338, "label": "Unit tests for the Dockerfile"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/sqlite-utils/issues/98#issuecomment-928790381", "issue_url": "https://api.github.com/repos/simonw/sqlite-utils/issues/98", "id": 928790381, "node_id": "IC_kwDOCGYnMM43XDdt", "user": {"value": 36834097, "label": "patricktrainer"}, "created_at": "2021-09-28T04:38:44Z", "updated_at": "2021-09-28T04:38:44Z", "author_association": "NONE", "body": "Hi @simonw - wondering if you might be able to shed some light here. I've seemed to reproduce this issue. \r\nHere's the stacktrace: \r\n\r\n```\r\n... db[\"potholes\"].insert(pothole, pk='id', alter=True, replace=True)\r\n... \r\n\r\nTraceback (most recent call last):\r\n File \"\", line 3, in \r\n File \"/Users/patricktrainer/.pyenv/versions/3.9.0/lib/python3.9/site-packages/sqlite_utils/db.py\", line 2481, in insert\r\n return self.insert_all(\r\n File \"/Users/patricktrainer/.pyenv/versions/3.9.0/lib/python3.9/site-packages/sqlite_utils/db.py\", line 2596, in insert_all\r\n self.insert_chunk(\r\n File \"/Users/patricktrainer/.pyenv/versions/3.9.0/lib/python3.9/site-packages/sqlite_utils/db.py\", line 2424, in insert_chunk\r\n row = list(self.rows_where(\"rowid = ?\", [self.last_rowid]))[0]\r\nIndexError: list index out of range\r\n```\r\n\r\nInteresting enough, I found that omitting the `pk` param does not throw the error.\r\n\r\nLet me know how I can help out! \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": 597671518, "label": "Only set .last_rowid and .last_pk for single update/inserts, not for .insert_all()/.upsert_all() with multiple records"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/415#issuecomment-473217334", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/415", "id": 473217334, "node_id": "MDEyOklzc3VlQ29tbWVudDQ3MzIxNzMzNA==", "user": {"value": 36796532, "label": "ad-si"}, "created_at": "2019-03-15T09:30:57Z", "updated_at": "2019-03-15T09:30:57Z", "author_association": "NONE", "body": "Awesome, thanks! \ud83d\ude01 ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 418329842, "label": "Add query parameter to hide SQL textarea"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/120#issuecomment-439421164", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/120", "id": 439421164, "node_id": "MDEyOklzc3VlQ29tbWVudDQzOTQyMTE2NA==", "user": {"value": 36796532, "label": "ad-si"}, "created_at": "2018-11-16T15:05:18Z", "updated_at": "2018-11-16T15:05:18Z", "author_association": "NONE", "body": "This would be an awesome feature \u2764\ufe0f ", "reactions": "{\"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275087397, "label": "Plugin that adds an authentication layer of some sort"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2126#issuecomment-1674242356", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2126", "id": 1674242356, "node_id": "IC_kwDOBm6k_c5jyuk0", "user": {"value": 36199671, "label": "ctsrc"}, "created_at": "2023-08-11T05:52:29Z", "updated_at": "2023-08-11T05:52:29Z", "author_association": "NONE", "body": "I see :) yeah, I\u2019m on the stable version installed from homebrew on macOS", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1838266862, "label": "Permissions in metadata.yml / metadata.json"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/2126#issuecomment-1666912107", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/2126", "id": 1666912107, "node_id": "IC_kwDOBm6k_c5jWw9r", "user": {"value": 36199671, "label": "ctsrc"}, "created_at": "2023-08-06T16:27:34Z", "updated_at": "2023-08-06T16:27:34Z", "author_association": "NONE", "body": "And in similar fashion, how can I assign the `edit-tiddlywiki` permission to my user `myuser` in `metadata.yml` / `metadata.json`?", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1838266862, "label": "Permissions in metadata.yml / metadata.json"}, "performed_via_github_app": null}