home / github

Menu
  • Search all tables
  • GraphQL API

issue_comments

Table actions
  • GraphQL API for issue_comments

8 rows where author_association = "NONE" and user = 647359 sorted by updated_at descending

✖
✖
✖

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: issue_url, created_at (date), updated_at (date)

issue 3

  • Port Datasette to ASGI 4
  • Populate "endpoint" key in ASGI scope 2
  • bump uvicorn to 0.9.0 to be Python-3.8 friendly 2

user 1

  • tomchristie · 8 ✖

author_association 1

  • NONE · 8 ✖
id html_url issue_url node_id user created_at updated_at ▲ author_association body reactions issue performed_via_github_app
552327079 https://github.com/simonw/datasette/pull/595#issuecomment-552327079 https://api.github.com/repos/simonw/datasette/issues/595 MDEyOklzc3VlQ29tbWVudDU1MjMyNzA3OQ== tomchristie 647359 2019-11-11T07:34:27Z 2019-11-11T07:34:27Z NONE

Glitch has been upgraded to Python 3.7.

Whoop! 🥳 ✨

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
bump uvicorn to 0.9.0 to be Python-3.8 friendly 506300941  
541664602 https://github.com/simonw/datasette/pull/595#issuecomment-541664602 https://api.github.com/repos/simonw/datasette/issues/595 MDEyOklzc3VlQ29tbWVudDU0MTY2NDYwMg== tomchristie 647359 2019-10-14T13:03:10Z 2019-10-14T13:03:10Z NONE

🤷‍♂️ @stonebig's suggestion would be the best I got too, if you want to support 3.5->3.8.

It's either that, or hold off on 3.8 support until you're ready to go to 3.6->3.8.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
bump uvicorn to 0.9.0 to be Python-3.8 friendly 506300941  
513442743 https://github.com/simonw/datasette/issues/537#issuecomment-513442743 https://api.github.com/repos/simonw/datasette/issues/537 MDEyOklzc3VlQ29tbWVudDUxMzQ0Mjc0Mw== tomchristie 647359 2019-07-20T06:50:47Z 2019-07-20T06:50:47Z NONE

Right now the spec does say “copy the scope, rather than mutate it” https://asgi.readthedocs.io/en/latest/specs/main.html#middleware

I wouldn’t be surprised if that there’s room for discussion on evolving the exact language there.

There’s obvs a nice element to the strictness there, tho practically I’m not sure it’s something that implementations will follow, and its not something that Starlette chooses to abide by.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Populate "endpoint" key in ASGI scope 463544206  
513279397 https://github.com/simonw/datasette/issues/537#issuecomment-513279397 https://api.github.com/repos/simonw/datasette/issues/537 MDEyOklzc3VlQ29tbWVudDUxMzI3OTM5Nw== tomchristie 647359 2019-07-19T15:47:57Z 2019-07-19T15:48:09Z NONE

The middleware implementation there works okay with a router nested inside if the scope is mutated. (Ie. "endpoint" doesn't need to exist at the point that the middleware starts running, but if it has been made available by the time an exception is thrown, then it can be used.)

Starlette's usage of "endpoint" there is unilateral, rather than something I've discussed against the ASGI spec - certainly it's important for any monitoring ASGI middleware to be able to have some kind of visibility onto some limited subset of routing information, and "endpoint" in the scope referencing some routed-to callable seemed general enough to be useful.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Populate "endpoint" key in ASGI scope 463544206  
494297022 https://github.com/simonw/datasette/issues/272#issuecomment-494297022 https://api.github.com/repos/simonw/datasette/issues/272 MDEyOklzc3VlQ29tbWVudDQ5NDI5NzAyMg== tomchristie 647359 2019-05-21T08:39:17Z 2019-05-21T08:39:17Z NONE

Useful context stuff:

ASGI decodes %2F encoded slashes in URLs automatically

raw_path for ASGI looks to be under consideration: https://github.com/django/asgiref/issues/87

uvicorn doesn't support Python 3.5

That was an issue specifically against the <=3.5.2 minor point releases of Python, now resolved: https://github.com/encode/uvicorn/issues/330 👍

Starlette for things like form parsing - but it's 3.6+ only!

Yeah - the bits that require 3.6 are anywhere with the "async for" syntax. If it wasn't for that I'd downport it, but that one's a pain. It's the one bit of syntax to watch out for if you're looking to bring any bits of implementation across to Datasette.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Port Datasette to ASGI 324188953  
418695115 https://github.com/simonw/datasette/issues/272#issuecomment-418695115 https://api.github.com/repos/simonw/datasette/issues/272 MDEyOklzc3VlQ29tbWVudDQxODY5NTExNQ== tomchristie 647359 2018-09-05T11:21:25Z 2018-09-05T11:21:25Z NONE

Some notes:

  • Starlette just got a bump to 0.3.0 - there's some renamings in there. It's got enough functionality now that you can treat it either as a framework or as a toolkit. Either way the component design is all just here's an ASGI app all the way through.
  • Uvicorn got a bump to 0.3.3 - Removed some cyclical references that were causing garbage collection to impact performance. Ought to be a decent speed bump.
  • Wrt. passing config - Either use a single envvar that points to a config, or use multiple envvars for the config. Uvicorn could get a flag to read a .env file, but I don't see ASGI itself having a specific interface there.
{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Port Datasette to ASGI 324188953  
404514973 https://github.com/simonw/datasette/issues/272#issuecomment-404514973 https://api.github.com/repos/simonw/datasette/issues/272 MDEyOklzc3VlQ29tbWVudDQwNDUxNDk3Mw== tomchristie 647359 2018-07-12T13:38:24Z 2018-07-12T13:38:24Z NONE

Okay. I reckon the latest version should have all the kinds of components you'd need:

Recently added ASGI components for Routing and Static Files support, as well as making few tweaks to make sure requests and responses are instantiated efficiently.

Don't have any redirect-to-slash / redirect-to-non-slash stuff out of the box yet, which it looks like you might miss.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Port Datasette to ASGI 324188953  
400571521 https://github.com/simonw/datasette/issues/272#issuecomment-400571521 https://api.github.com/repos/simonw/datasette/issues/272 MDEyOklzc3VlQ29tbWVudDQwMDU3MTUyMQ== tomchristie 647359 2018-06-27T07:30:07Z 2018-06-27T07:30:07Z NONE

I’m up for helping with this.

Looks like you’d need static files support, which I’m planning on adding a component for. Anything else obviously missing?

For a quick overview it looks very doable - the test client ought to me your test cases stay roughly the same.

Are you using any middleware or other components for the Sanic ecosystem? Do you use cookies or sessions at all?

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
Port Datasette to ASGI 324188953  

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

CREATE TABLE [issue_comments] (
   [html_url] TEXT,
   [issue_url] TEXT,
   [id] INTEGER PRIMARY KEY,
   [node_id] TEXT,
   [user] INTEGER REFERENCES [users]([id]),
   [created_at] TEXT,
   [updated_at] TEXT,
   [author_association] TEXT,
   [body] TEXT,
   [reactions] TEXT,
   [issue] INTEGER REFERENCES [issues]([id])
, [performed_via_github_app] TEXT);
CREATE INDEX [idx_issue_comments_issue]
                ON [issue_comments] ([issue]);
CREATE INDEX [idx_issue_comments_user]
                ON [issue_comments] ([user]);
Powered by Datasette · Queries took 59.337ms · About: github-to-sqlite
  • Sort ascending
  • Sort descending
  • Facet by this
  • Hide this column
  • Show all columns
  • Show not-blank rows