{"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/16#issuecomment-623846880", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/16", "id": 623846880, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMzg0Njg4MA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-05-05T04:06:08Z", "updated_at": "2020-05-05T04:06:08Z", "author_association": "MEMBER", "body": "This function seems to convert them into UUIDs that match my photos:\r\n```python\r\ndef to_uuid(uuid_0, uuid_1):\r\n b = uuid_0.to_bytes(8, 'little', signed=True) + uuid_1.to_bytes(8, 'little', signed=True)\r\n return str(uuid.UUID(bytes=b)).upper()\r\n```", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"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/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/github-to-sqlite/issues/38#issuecomment-623027889", "issue_url": "https://api.github.com/repos/dogsheep/github-to-sqlite/issues/38", "id": 623027889, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMzAyNzg4OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-05-02T23:15:11Z", "updated_at": "2020-05-02T23:15:11Z", "author_association": "MEMBER", "body": "This is one of the use-cases for the `repos_starred` view: it allows you to easily run this kid of query without having to construct the SQL by hand. Here's a demo:\r\n\r\nhttps://github-to-sqlite.dogsheep.net/github/repos_starred?name__contains=twitter\r\n\r\nMy philosophy here is to keep the raw tables (like `stars`) as normalized as possible, then use SQL views which expose the data in a form that's easier to query.", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 611284481, "label": "[Feature Request] Support Repo Name in Search \ud83e\udd7a"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1091#issuecomment-756453945", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1091", "id": 756453945, "node_id": "MDEyOklzc3VlQ29tbWVudDc1NjQ1Mzk0NQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-01-07T23:42:50Z", "updated_at": "2021-01-07T23:42:50Z", "author_association": "OWNER", "body": "@henry501 it looks like you spotted a bug in the documentation - I just addressed that, the fix is now live here: https://docs.datasette.io/en/latest/deploying.html#running-datasette-behind-a-proxy", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 742011049, "label": ".json and .csv exports fail to apply base_url"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1112#issuecomment-735283033", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1112", "id": 735283033, "node_id": "MDEyOklzc3VlQ29tbWVudDczNTI4MzAzMw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-11-28T19:53:36Z", "updated_at": "2020-11-28T19:53:36Z", "author_association": "OWNER", "body": "Thanks!", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 752749485, "label": "Fix --metadata doc usage"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1127#issuecomment-852712106", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1127", "id": 852712106, "node_id": "MDEyOklzc3VlQ29tbWVudDg1MjcxMjEwNg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-06-02T04:28:55Z", "updated_at": "2021-06-02T04:28:55Z", "author_association": "OWNER", "body": "This became resizable in #1236.", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 756818250, "label": "Make the custom SQL query text box larger or resizable"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1134#issuecomment-742024588", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1134", "id": 742024588, "node_id": "MDEyOklzc3VlQ29tbWVudDc0MjAyNDU4OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-12-09T20:19:59Z", "updated_at": "2020-12-09T20:20:33Z", "author_association": "OWNER", "body": "https://byraadsarkivet.aarhus.dk/db/cases?_searchmode=raw&_search=sundhedsfrem%2A is an absolutely beautiful example of a themed Datasette! Very excited to show this to people.", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 760312579, "label": "\"_searchmode=raw\" throws an index out of range error when combined with \"_search_COLUMN\""}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1310#issuecomment-829885904", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1310", "id": 829885904, "node_id": "MDEyOklzc3VlQ29tbWVudDgyOTg4NTkwNA==", "user": {"value": 3747136, "label": "ColinMaudry"}, "created_at": "2021-04-30T06:58:46Z", "updated_at": "2021-04-30T07:26:11Z", "author_association": "NONE", "body": "I made it work with openpyxl. I'm not sure all the code under `@hookimpl` is necessary... but it works :)\r\n\r\n```python\r\nfrom datasette import hookimpl\r\nfrom datasette.utils.asgi import Response\r\nfrom openpyxl import Workbook\r\nfrom openpyxl.writer.excel import save_virtual_workbook\r\nfrom openpyxl.cell import WriteOnlyCell\r\nfrom openpyxl.styles import Alignment, Font, PatternFill\r\nfrom tempfile import NamedTemporaryFile\r\n\r\ndef render_spreadsheet(rows):\r\n wb = Workbook(write_only=True)\r\n ws = wb.create_sheet()\r\n ws = wb.active\r\n ws.title = \"decp\"\r\n\r\n columns = rows[0].keys()\r\n headers = []\r\n for col in columns :\r\n c = WriteOnlyCell(ws, col)\r\n c.fill = PatternFill(\"solid\", fgColor=\"DDEFFF\")\r\n headers.append(c)\r\n ws.append(headers)\r\n\r\n for row in rows:\r\n wsRow = []\r\n for col in columns:\r\n c = WriteOnlyCell(ws, row[col])\r\n if col == \"objet\" :\r\n c.alignment = Alignment(wrapText = True)\r\n wsRow.append(c)\r\n ws.append(wsRow)\r\n\r\n with NamedTemporaryFile() as tmp:\r\n wb.save(tmp.name)\r\n tmp.seek(0)\r\n return Response(\r\n tmp.read(),\r\n headers={\r\n 'Content-Disposition': 'attachment; filename=decp.xlsx',\r\n 'Content-type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\r\n }\r\n )\r\n\r\n@hookimpl\r\ndef register_output_renderer():\r\n return {\"extension\": \"xlsx\",\r\n \"render\": render_spreadsheet,\r\n \"can_render\": lambda: False}\r\n\r\n```\r\n\r\nThe key part was to find the right function to wrap the spreadsheet object `wb`. `NamedTemporaryFile()` did it!\r\n\r\nI'll update this issue when the plugin is packaged and ready for broader use.", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 870125126, "label": "I'm creating a plugin to export a spreadsheet file (.ods or .xlsx)"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1320#issuecomment-847237524", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1320", "id": 847237524, "node_id": "MDEyOklzc3VlQ29tbWVudDg0NzIzNzUyNA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-05-24T18:15:56Z", "updated_at": "2021-05-24T18:15:56Z", "author_association": "OWNER", "body": "Added some new documentation about that here: https://github.com/simonw/datasette/blob/c0a748e5c3f498fa8c139b420d07dd3dea612379/docs/installation.rst#installing-plugins", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 884952179, "label": "Can't use apt-get in Dockerfile when using datasetteproj/datasette as base"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1380#issuecomment-967801997", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1380", "id": 967801997, "node_id": "IC_kwDOBm6k_c45r3yN", "user": {"value": 7094907, "label": "Segerberg"}, "created_at": "2021-11-13T08:05:37Z", "updated_at": "2021-11-13T08:09:11Z", "author_association": "NONE", "body": "@glasnt yeah I guess that could be an option. I run datasette on large databases > 75gb and the startup time is a bit slow for me even with -i --inspect-file options. Here's a quick sketch for a plugin that will reload db's in a folder that you set for the plugin in metadata.json. If you request /-reload-db new db's will be added. (You probably want to implement some authentication for this =) ) \r\n\r\nhttps://gist.github.com/Segerberg/b96a0e0a5389dce2396497323cda7042\r\n", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 924748955, "label": "Serve all db files in a folder"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1458#issuecomment-943620649", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1458", "id": 943620649, "node_id": "IC_kwDOBm6k_c44PoIp", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-10-14T18:38:58Z", "updated_at": "2021-10-14T18:38:58Z", "author_association": "OWNER", "body": "This is a great idea, thanks.", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 988555009, "label": "Rework the `--static` documentation a bit"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1817#issuecomment-1258756231", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1817", "id": 1258756231, "node_id": "IC_kwDOBm6k_c5LBxiH", "user": {"value": 9599, "label": "simonw"}, "created_at": "2022-09-26T23:19:34Z", "updated_at": "2022-09-26T23:19:34Z", "author_association": "OWNER", "body": "This is a good idea - it's something I should do before Datasette 1.0.\r\n\r\nI was a tiny bit worried about compatibility (Datasette is 3.7+) but it looks like they have been in Python since 3.0!", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1384273985, "label": "Expose `sql` and `params` arguments to various plugin hooks"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/185#issuecomment-379595253", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/185", "id": 379595253, "node_id": "MDEyOklzc3VlQ29tbWVudDM3OTU5NTI1Mw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-04-09T00:24:10Z", "updated_at": "2018-04-09T00:24:10Z", "author_association": "OWNER", "body": "@carlmjohnson in case you aren't following along with #189 I've shipped the first working prototype of sort-by-column - you can try it out here: https://datasette-issue-189-demo-2.now.sh/salaries-7859114-7859114/2017+Maryland+state+salaries?_search=university&_sort_desc=annual_salary", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 299760684, "label": "Metadata should be a nested arbitrary KV store"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1886#issuecomment-1312898318", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1886", "id": 1312898318, "node_id": "IC_kwDOBm6k_c5OQT0O", "user": {"value": 19851673, "label": "eigenfoo"}, "created_at": "2022-11-14T00:52:16Z", "updated_at": "2022-11-14T00:52:16Z", "author_association": "NONE", "body": "I'm a cryptic crossword enthusiast and have spent a lot of time scraping and parsing cryptic crossword clues from various blogs, forums and publications. The result is over **half a million clues from cryptic crosswords over the past twelve years**, including the clue, answer, puzzle date, puzzle name and a link to the original source. This is all hosted using Datasette, which has been a delight to use: https://cryptics.georgeho.org/\r\n\r\nThis dataset is a significant work of crossword archivism and scholarship, as acquiring historical crosswords and structuring their contents require focused effort and tedious cleaning that few are willing to do for such trivial data - for example, according to [this 2004 selection guide](https://cryptics.georgeho.org/static/documents/Selection_AppendixE_v2.pdf), the Library of Congress explicitly does not collect crossword puzzles. Anecdotally, I know that many constructors/setters of cryptic crosswords use this dataset as a resource, and some even simply call it \"the database\" - this is probably one of the most impactful data projects I've worked on!", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 1447050738, "label": "Call for birthday presents: if you're using Datasette, let us know how you're using it here"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/271#issuecomment-453262703", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/271", "id": 453262703, "node_id": "MDEyOklzc3VlQ29tbWVudDQ1MzI2MjcwMw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-01-10T21:35:18Z", "updated_at": "2019-01-10T21:35:18Z", "author_association": "OWNER", "body": "It turns out this was much easier to support than I expected: https://github.com/simonw/datasette/commit/eac08f0dfc61a99e8887442fc247656d419c76f8", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 324162476, "label": "Mechanism for automatically picking up changes when on-disk .db file changes"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/334#issuecomment-403672561", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/334", "id": 403672561, "node_id": "MDEyOklzc3VlQ29tbWVudDQwMzY3MjU2MQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-07-10T01:45:28Z", "updated_at": "2018-07-10T01:45:28Z", "author_association": "OWNER", "body": "Tested with `datasette publish heroku fixtures.db --extra-options=\"--config sql_time_limit_ms:4000\"`\r\n\r\nhttps://blooming-anchorage-31561.herokuapp.com/-/config", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 339095976, "label": "extra_options not passed to heroku publisher"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/434#issuecomment-489104146", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/434", "id": 489104146, "node_id": "MDEyOklzc3VlQ29tbWVudDQ4OTEwNDE0Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-05-03T13:56:45Z", "updated_at": "2019-05-03T13:56:45Z", "author_association": "OWNER", "body": "This is amazing - works an absolute treat. Thank you very much!", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 434321685, "label": "\"datasette publish cloudrun\" command to publish to Google Cloud Run"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/46#issuecomment-344810525", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/46", "id": 344810525, "node_id": "MDEyOklzc3VlQ29tbWVudDM0NDgxMDUyNQ==", "user": {"value": 54999, "label": "ingenieroariel"}, "created_at": "2017-11-16T04:11:25Z", "updated_at": "2017-11-16T04:11:25Z", "author_association": "CONTRIBUTOR", "body": "@simonw On the spatialite support, here is some info to make it work and a screenshot:\r\n\r\n\"screen\r\n\r\nI used the following Dockerfile:\r\n```\r\nFROM prolocutor/python3-sqlite-ext:3.5.1-spatialite as build\r\n\r\nRUN mkdir /code\r\nADD . /code/\r\n\r\nRUN pip install /code/\r\n\r\nEXPOSE 8001\r\nCMD [\"datasette\", \"serve\", \"/code/ne.sqlite\", \"--host\", \"0.0.0.0\"]\r\n```\r\n\r\nand added this to `prepare_connection`:\r\n```\r\n conn.enable_load_extension(True)\r\n conn.execute(\"SELECT load_extension('/usr/local/lib/mod_spatialite.so')\")\r\n```", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 271301468, "label": "Dockerfile should build more recent SQLite with FTS5 and spatialite support"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/478#issuecomment-509066513", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/478", "id": 509066513, "node_id": "MDEyOklzc3VlQ29tbWVudDUwOTA2NjUxMw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2019-07-08T03:30:41Z", "updated_at": "2019-07-08T03:30:41Z", "author_association": "OWNER", "body": "This worked as intended - thanks @glasnt!\r\n\r\nhttps://travis-ci.org/simonw/datasette/builds/555580006\r\n\r\n\"Build__1058_-_simonw_datasette_-_Travis_CI\"\r\n\r\nThe release has been deployed to PyPI even while the Docker image is still being built.", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 445868234, "label": "Make it so Docker build doesn't delay PyPI release"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/57#issuecomment-400903871", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/57", "id": 400903871, "node_id": "MDEyOklzc3VlQ29tbWVudDQwMDkwMzg3MQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-06-28T04:01:38Z", "updated_at": "2018-06-28T04:01:38Z", "author_association": "OWNER", "body": "Shipped to Docker Hub: https://hub.docker.com/r/datasetteproject/datasette/\r\n\r\nI did this manually the first time. I'll set Travis up to do this automatically in #329", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 273127694, "label": "Ship a Docker image of the whole thing"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/619#issuecomment-850057694", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/619", "id": 850057694, "node_id": "MDEyOklzc3VlQ29tbWVudDg1MDA1NzY5NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-05-28T02:03:05Z", "updated_at": "2021-05-28T02:03:05Z", "author_association": "OWNER", "body": "I nearly got this working, but I ran into one last problem: the code path for when an error is raised but the user specified `?_shape=array`. I'll open a draft PR with where I've got to so far.", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 520655983, "label": "\"Invalid SQL\" page should let you edit the SQL"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/653#issuecomment-582211745", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/653", "id": 582211745, "node_id": "MDEyOklzc3VlQ29tbWVudDU4MjIxMTc0NQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-05T02:28:05Z", "updated_at": "2020-02-05T02:28:05Z", "author_association": "OWNER", "body": "This is shipped in Datasette 0.35. Here's a demo of it working:\r\n\r\nhttps://latest.datasette.io/fixtures?sql=--+this+is+a+comment%0D%0Aselect+*+from+%5B123_starts_with_digits%5D\r\n\r\nCompare with https://v0-34.datasette.io/fixtures?sql=--+this+is+a+comment%0D%0Aselect+*+from+%5B123_starts_with_digits%5D which returned an error.", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 541331755, "label": "allow leading comments in SQL input field"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/731#issuecomment-620095649", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/731", "id": 620095649, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMDA5NTY0OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-27T16:32:44Z", "updated_at": "2020-04-27T16:32:44Z", "author_association": "OWNER", "body": "Documentation: https://datasette.readthedocs.io/en/latest/config.html#configuration-directory-mode", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 605110015, "label": "Option to automatically configure based on directory layout"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/93#issuecomment-974765825", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/93", "id": 974765825, "node_id": "IC_kwDOBm6k_c46Gb8B", "user": {"value": 9599, "label": "simonw"}, "created_at": "2021-11-21T07:00:21Z", "updated_at": "2021-11-21T07:00:21Z", "author_association": "OWNER", "body": "Closing this in favour of Datasette Desktop: https://datasette.io/desktop", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 1, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 273944952, "label": "Package as standalone binary"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/983#issuecomment-753219407", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/983", "id": 753219407, "node_id": "MDEyOklzc3VlQ29tbWVudDc1MzIxOTQwNw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-12-31T22:38:45Z", "updated_at": "2020-12-31T22:39:10Z", "author_association": "OWNER", "body": "You'll be able to add JavaScript plugins using a bunch of different mechanisms:\r\n\r\n- In a custom template, dropping the code in to a `