{"html_url": "https://github.com/simonw/datasette/issues/272#issuecomment-392118755", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/272", "id": 392118755, "node_id": "MDEyOklzc3VlQ29tbWVudDM5MjExODc1NQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-05-25T16:56:40Z", "updated_at": "2018-06-05T16:01:13Z", "author_association": "OWNER", "body": "Thinking about this further, maybe I should embrace ASGI turtles-all-the-way-down and teach each datasette view class to take a scope to the constructor and act entirely as an ASGI component. Would be a nice way of diving deep into ASGI and I can add utility helpers for things like querystring evaluation as I need them.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 324188953, "label": "Port Datasette to ASGI"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/272#issuecomment-394764713", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/272", "id": 394764713, "node_id": "MDEyOklzc3VlQ29tbWVudDM5NDc2NDcxMw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-06-05T15:58:54Z", "updated_at": "2018-06-05T16:00:40Z", "author_association": "OWNER", "body": "https://github.com/encode/uvicorn/blob/572b5fe6c811b63298d5350a06b664839624c860/uvicorn/run.py#L63 is how you start a Uvicorn server from code as opposed to the `uvicorn` CLI\r\n\r\n from uvicorn.run import UvicornServer\r\n UvicornServer().run(app, host=host, port=port)\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 324188953, "label": "Port Datasette to ASGI"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/306#issuecomment-394894500", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/306", "id": 394894500, "node_id": "MDEyOklzc3VlQ29tbWVudDM5NDg5NDUwMA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-06-05T23:40:40Z", "updated_at": "2018-06-05T23:40:40Z", "author_association": "OWNER", "body": "Input:\r\n- function that says if a name is a valid database\r\n- Function that says if a table exists\r\n- URL\r\n\r\nOutput:\r\n- view class\r\n- Arguments\r\n- Redirect (if it should redirect)", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 329661905, "label": "Custom URL routing with independent tests"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/306#issuecomment-394894910", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/306", "id": 394894910, "node_id": "MDEyOklzc3VlQ29tbWVudDM5NDg5NDkxMA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-06-05T23:43:18Z", "updated_at": "2018-06-05T23:49:41Z", "author_association": "OWNER", "body": "I'm going to use a named tuple for the output. That way I can support either tuple destructing or explicit property access on the returned value.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 329661905, "label": "Custom URL routing with independent tests"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/306#issuecomment-394895267", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/306", "id": 394895267, "node_id": "MDEyOklzc3VlQ29tbWVudDM5NDg5NTI2Nw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2018-06-05T23:45:26Z", "updated_at": "2018-06-05T23:45:26Z", "author_association": "OWNER", "body": "To support a future where Datasette is an ASGI app that can be attached to a URL within a larger application the routing function should have the option to accept a path prefix which will then be automatically attached to any resulting redirects.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 329661905, "label": "Custom URL routing with independent tests"}, "performed_via_github_app": null}