{"html_url": "https://github.com/simonw/datasette/issues/188#issuecomment-376594727", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/188", "id": 376594727, "node_id": "MDEyOklzc3VlQ29tbWVudDM3NjU5NDcyNw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-03-27T16:46:49Z", "updated_at": "2018-05-28T21:34:34Z", "author_association": "OWNER", "body": "One point of complexity: datasette can be used to bundle multiple .db files into a single \"app\".\r\n\r\nI think that's OK. We could require that the `datasette_files` table is present in the first database file passed on the command-line. Or we could even construct a search path and consult multiple versions of the table spread across multiple files.\r\n\r\nThat said... any configuration that corresponds to a specific table should live in the same database file as that table.\r\n\r\nDitto for general metadata: if we have license/source information for a specific table or database that information should be able to live in the same .db file as the data.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 309047460, "label": "Ability to bundle metadata and templates inside the SQLite file"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/150#issuecomment-392568047", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/150", "id": 392568047, "node_id": "MDEyOklzc3VlQ29tbWVudDM5MjU2ODA0Nw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-05-28T16:41:28Z", "updated_at": "2018-05-28T16:41:28Z", "author_association": "OWNER", "body": "Closing this as obsolete since we have facets now.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 276704327, "label": "_group_count= feature improvements"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/116#issuecomment-392574208", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/116", "id": 392574208, "node_id": "MDEyOklzc3VlQ29tbWVudDM5MjU3NDIwOA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-05-28T17:23:41Z", "updated_at": "2018-05-28T17:23:41Z", "author_association": "OWNER", "body": "I'm handling this as separate documentation sections instead, e.g. http://datasette.readthedocs.io/en/latest/spatialite.html", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 274884209, "label": "Add documentation section about SQLite extensions"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/79#issuecomment-392574358", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/79", "id": 392574358, "node_id": "MDEyOklzc3VlQ29tbWVudDM5MjU3NDM1OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-05-28T17:24:48Z", "updated_at": "2018-05-28T17:24:48Z", "author_association": "OWNER", "body": "Closing this as obsolete in favor of other issues [tagged documentation](https://github.com/simonw/datasette/labels/documentation).", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 273569068, "label": "Add more detailed API documentation to the README"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/73#issuecomment-392574415", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/73", "id": 392574415, "node_id": "MDEyOklzc3VlQ29tbWVudDM5MjU3NDQxNQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-05-28T17:25:14Z", "updated_at": "2018-05-28T17:25:14Z", "author_association": "OWNER", "body": "I implemented this as `?_ttl=0` in #289 ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 273296178, "label": "_nocache=1 query string option for use with sort-by-random"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/36#issuecomment-392575160", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/36", "id": 392575160, "node_id": "MDEyOklzc3VlQ29tbWVudDM5MjU3NTE2MA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-05-28T17:30:52Z", "updated_at": "2018-05-28T17:30:52Z", "author_association": "OWNER", "body": "I've changed my mind about this.\r\n\r\n\"Select every record on the 3rd day of the month\" doesn't strike me as an actually useful feature.\r\n\r\n\"Select every record in 2018 / in May 2018 / on 1st May 2018\", if you are using the SQLite-preferred datestring format, are already supported using LIKE queries (or the startswith filter):\r\n\r\n* https://fivethirtyeight.datasettes.com/fivethirtyeight/inconvenient-sequel%2Fratings?timestamp__startswith=2017\r\n* https://fivethirtyeight.datasettes.com/fivethirtyeight/inconvenient-sequel%2Fratings?timestamp__startswith=2017-08\r\n* https://fivethirtyeight.datasettes.com/fivethirtyeight/inconvenient-sequel%2Fratings?timestamp__startswith=2017-08-29\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": 268262480, "label": "date, year, month and day querystring lookups"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/121#issuecomment-392575448", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/121", "id": 392575448, "node_id": "MDEyOklzc3VlQ29tbWVudDM5MjU3NTQ0OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-05-28T17:33:07Z", "updated_at": "2018-05-28T17:33:07Z", "author_association": "OWNER", "body": "This shouldn't be a comma-separated list, it should be an argument you can pass multiple times to better match #255 and #292\r\n\r\nMaybe `?_json=foo&_json=bar`\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275089535, "label": "?_json=foo&_json=bar query string argument "}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/31#issuecomment-392580715", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/31", "id": 392580715, "node_id": "MDEyOklzc3VlQ29tbWVudDM5MjU4MDcxNQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-05-28T18:10:45Z", "updated_at": "2018-05-28T18:10:45Z", "author_association": "OWNER", "body": "Oops, that commit should have referenced #121 ", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 268087542, "label": "Idea: colour scheme based on sha256 of db"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/121#issuecomment-392580902", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/121", "id": 392580902, "node_id": "MDEyOklzc3VlQ29tbWVudDM5MjU4MDkwMg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-05-28T18:11:51Z", "updated_at": "2018-05-28T18:11:51Z", "author_association": "OWNER", "body": "Implemented in 76d11eb768e2f05f593c4d37a25280c0fcdf8fd6\r\n\r\nDocumented here: http://datasette.readthedocs.io/en/latest/json_api.html#special-json-arguments", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275089535, "label": "?_json=foo&_json=bar query string argument "}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/34#issuecomment-392600866", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/34", "id": 392600866, "node_id": "MDEyOklzc3VlQ29tbWVudDM5MjYwMDg2Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-05-28T20:45:34Z", "updated_at": "2018-05-28T20:45:42Z", "author_association": "OWNER", "body": "This is an accidental duplicate, work is now taking place in #266", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 268176505, "label": "Support CSV export with a .csv extension"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/38#issuecomment-392601114", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/38", "id": 392601114, "node_id": "MDEyOklzc3VlQ29tbWVudDM5MjYwMTExNA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-05-28T20:47:31Z", "updated_at": "2018-05-28T20:47:31Z", "author_association": "OWNER", "body": "I think the way Datasette executes SQL queries in a thread pool introduced in #45 is a good solution for this ticket.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 268462768, "label": "Experiment with patterns for concurrent long running queries"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/56#issuecomment-392601478", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/56", "id": 392601478, "node_id": "MDEyOklzc3VlQ29tbWVudDM5MjYwMTQ3OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-05-28T20:50:24Z", "updated_at": "2018-05-28T20:50:24Z", "author_association": "OWNER", "body": "I'm going to close this as WONTFIX for the moment. Once Plugins #14 grows the ability to add extra URL paths and views someone who needs this could build it as a plugin instead.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 273127443, "label": "Easy way to block search engine crawling in robots.txt"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/97#issuecomment-392602334", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/97", "id": 392602334, "node_id": "MDEyOklzc3VlQ29tbWVudDM5MjYwMjMzNA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-05-28T20:57:21Z", "updated_at": "2018-05-28T20:57:21Z", "author_association": "OWNER", "body": "The `/.json` endpoint is more of an implementation detail of the homepage at this point. A better, documented ( http://datasette.readthedocs.io/en/stable/introspection.html#inspect ) endpoint for finding all of the databases and tables is https://parlgov.datasettes.com/-/inspect.json", "reactions": "{\"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 274022950, "label": "Link to JSON for the list of tables "}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/142#issuecomment-392602558", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/142", "id": 392602558, "node_id": "MDEyOklzc3VlQ29tbWVudDM5MjYwMjU1OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-05-28T20:58:59Z", "updated_at": "2018-05-28T20:58:59Z", "author_association": "OWNER", "body": "I'll have the error message display a link to the documentation.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275917760, "label": "Show extra instructions with the interrupted"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/142#issuecomment-392605574", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/142", "id": 392605574, "node_id": "MDEyOklzc3VlQ29tbWVudDM5MjYwNTU3NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-05-28T21:25:05Z", "updated_at": "2018-05-28T21:25:05Z", "author_association": "OWNER", "body": "![2018-05-28 at 2 24 pm](https://user-images.githubusercontent.com/9599/40629887-e991c61c-6282-11e8-9d66-6387f90e87ca.png)\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 275917760, "label": "Show extra instructions with the interrupted"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/144#issuecomment-392606044", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/144", "id": 392606044, "node_id": "MDEyOklzc3VlQ29tbWVudDM5MjYwNjA0NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-05-28T21:29:42Z", "updated_at": "2018-05-28T21:29:42Z", "author_association": "OWNER", "body": "The other major limitation of APSW is its treatment of unicode: https://rogerbinns.github.io/apsw/types.html - it tells you that it is your responsibility to ensure that TEXT columns in your SQLite database are correctly encoded.\r\n\r\nSince Datasette is designed to work against ANY SQLite database that someone may have already created, I see that as a show-stopping limitation.\r\n\r\nThanks to https://github.com/coleifer/sqlite-vtfunc I now have a working mechanism for virtual tables (I've even built a demo plugin with them - https://github.com/simonw/datasette-sql-scraper ) which was the main thing that interested me about APSW.\r\n\r\nI'm going to close this as WONTFIX - I think Python's built-in `sqlite3` is good enough, and is now so firmly embedded in the project that making it pluggable would be more trouble than it's worth.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 276091279, "label": "apsw as alternative sqlite3 binding (for full text search)"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/179#issuecomment-392606418", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/179", "id": 392606418, "node_id": "MDEyOklzc3VlQ29tbWVudDM5MjYwNjQxOA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-05-28T21:32:37Z", "updated_at": "2018-05-28T21:32:37Z", "author_association": "OWNER", "body": "> It could also be useful to allow users to import a python file containing custom functions that can that be loaded into scope and made available to custom templates.\r\n\r\nThat's now covered by the plugins mechanism - you can create plugins that define custom template functions: http://datasette.readthedocs.io/en/stable/plugins.html#prepare-jinja2-environment-env", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 288438570, "label": "More metadata options for template authors "}, "performed_via_github_app": null}