{"action":"created","comment":{"url":"https://api.github.com/repos/encode/starlette/pulls/comments/220588247","pull_request_review_id":159028981,"id":220588247,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyMDU4ODI0Nw==","diff_hunk":"@@ -1,25 +1,33 @@\n-from starlette.responses import PlainTextResponse, FileResponse\n-from aiofiles.os import stat as aio_stat\n import os\n import stat\n+import typing\n+\n+from aiofiles.os import stat as aio_stat\n+\n+from starlette.responses import PlainTextResponse, FileResponse\n+from starlette.types import Send, Receive, Scope\n \n \n class StaticFile:\n-    def __init__(self, *, path):\n+    def __init__(self, *, path: str) -> None:\n         self.path = path\n \n-    def __call__(self, scope):\n+    def __call__(\n+        self, scope: Scope\n+    ) -> typing.Union[PlainTextResponse, \"_StaticFileResponder\"]:\n         if scope[\"method\"] not in (\"GET\", \"HEAD\"):\n             return PlainTextResponse(\"Method Not Allowed\", status_code=405)\n         return _StaticFileResponder(scope, path=self.path)\n \n \n class StaticFiles:\n-    def __init__(self, *, directory):\n+    def __init__(self, *, directory: str) -> None:\n         self.directory = directory\n         self.config_checked = False\n \n-    def __call__(self, scope):\n+    def __call__(\n+        self, scope: Scope\n+    ) -> typing.Union[PlainTextResponse, \"_StaticFilesResponder\"]:","path":"starlette/staticfiles.py","position":36,"original_position":36,"commit_id":"2a3f48fc3356fd5c7253eb00b83e83a484bc5b8a","original_commit_id":"2a3f48fc3356fd5c7253eb00b83e83a484bc5b8a","user":{"login":"tomchristie","id":647359,"node_id":"MDQ6VXNlcjY0NzM1OQ==","avatar_url":"https://avatars2.githubusercontent.com/u/647359?v=4","gravatar_id":"","url":"https://api.github.com/users/tomchristie","html_url":"https://github.com/tomchristie","followers_url":"https://api.github.com/users/tomchristie/followers","following_url":"https://api.github.com/users/tomchristie/following{/other_user}","gists_url":"https://api.github.com/users/tomchristie/gists{/gist_id}","starred_url":"https://api.github.com/users/tomchristie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomchristie/subscriptions","organizations_url":"https://api.github.com/users/tomchristie/orgs","repos_url":"https://api.github.com/users/tomchristie/repos","events_url":"https://api.github.com/users/tomchristie/events{/privacy}","received_events_url":"https://api.github.com/users/tomchristie/received_events","type":"User","site_admin":false},"body":"Again, using `-> ASGIInstance` here would be appropriate.","created_at":"2018-09-26T14:32:32Z","updated_at":"2018-09-26T14:32:32Z","html_url":"https://github.com/encode/starlette/pull/70#discussion_r220588247","pull_request_url":"https://api.github.com/repos/encode/starlette/pulls/70","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/encode/starlette/pulls/comments/220588247"},"html":{"href":"https://github.com/encode/starlette/pull/70#discussion_r220588247"},"pull_request":{"href":"https://api.github.com/repos/encode/starlette/pulls/70"}}},"pull_request":{"url":"https://api.github.com/repos/encode/starlette/pulls/70","id":218336083,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE4MzM2MDgz","html_url":"https://github.com/encode/starlette/pull/70","diff_url":"https://github.com/encode/starlette/pull/70.diff","patch_url":"https://github.com/encode/starlette/pull/70.patch","issue_url":"https://api.github.com/repos/encode/starlette/issues/70","number":70,"state":"open","locked":false,"title":"Missing annotations added on staticfiles module","user":{"login":"marcosschroh","id":2828842,"node_id":"MDQ6VXNlcjI4Mjg4NDI=","avatar_url":"https://avatars0.githubusercontent.com/u/2828842?v=4","gravatar_id":"","url":"https://api.github.com/users/marcosschroh","html_url":"https://github.com/marcosschroh","followers_url":"https://api.github.com/users/marcosschroh/followers","following_url":"https://api.github.com/users/marcosschroh/following{/other_user}","gists_url":"https://api.github.com/users/marcosschroh/gists{/gist_id}","starred_url":"https://api.github.com/users/marcosschroh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marcosschroh/subscriptions","organizations_url":"https://api.github.com/users/marcosschroh/orgs","repos_url":"https://api.github.com/users/marcosschroh/repos","events_url":"https://api.github.com/users/marcosschroh/events{/privacy}","received_events_url":"https://api.github.com/users/marcosschroh/received_events","type":"User","site_admin":false},"body":"Command: `mypy starlette/staticfiles.py --disallow-untyped-defs --ignore-missing-imports --follow-imports=silent`","created_at":"2018-09-26T14:22:33Z","updated_at":"2018-09-26T14:32:32Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9c96ba02fb93f068aa96c2feb284a5caf1b64f43","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/encode/starlette/pulls/70/commits","review_comments_url":"https://api.github.com/repos/encode/starlette/pulls/70/comments","review_comment_url":"https://api.github.com/repos/encode/starlette/pulls/comments{/number}","comments_url":"https://api.github.com/repos/encode/starlette/issues/70/comments","statuses_url":"https://api.github.com/repos/encode/starlette/statuses/2a3f48fc3356fd5c7253eb00b83e83a484bc5b8a","head":{"label":"marcosschroh:missing-annotations-staticfiles-module","ref":"missing-annotations-staticfiles-module","sha":"2a3f48fc3356fd5c7253eb00b83e83a484bc5b8a","user":{"login":"marcosschroh","id":2828842,"node_id":"MDQ6VXNlcjI4Mjg4NDI=","avatar_url":"https://avatars0.githubusercontent.com/u/2828842?v=4","gravatar_id":"","url":"https://api.github.com/users/marcosschroh","html_url":"https://github.com/marcosschroh","followers_url":"https://api.github.com/users/marcosschroh/followers","following_url":"https://api.github.com/users/marcosschroh/following{/other_user}","gists_url":"https://api.github.com/users/marcosschroh/gists{/gist_id}","starred_url":"https://api.github.com/users/marcosschroh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marcosschroh/subscriptions","organizations_url":"https://api.github.com/users/marcosschroh/orgs","repos_url":"https://api.github.com/users/marcosschroh/repos","events_url":"https://api.github.com/users/marcosschroh/events{/privacy}","received_events_url":"https://api.github.com/users/marcosschroh/received_events","type":"User","site_admin":false},"repo":{"id":148459473,"node_id":"MDEwOlJlcG9zaXRvcnkxNDg0NTk0NzM=","name":"starlette","full_name":"marcosschroh/starlette","private":false,"owner":{"login":"marcosschroh","id":2828842,"node_id":"MDQ6VXNlcjI4Mjg4NDI=","avatar_url":"https://avatars0.githubusercontent.com/u/2828842?v=4","gravatar_id":"","url":"https://api.github.com/users/marcosschroh","html_url":"https://github.com/marcosschroh","followers_url":"https://api.github.com/users/marcosschroh/followers","following_url":"https://api.github.com/users/marcosschroh/following{/other_user}","gists_url":"https://api.github.com/users/marcosschroh/gists{/gist_id}","starred_url":"https://api.github.com/users/marcosschroh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marcosschroh/subscriptions","organizations_url":"https://api.github.com/users/marcosschroh/orgs","repos_url":"https://api.github.com/users/marcosschroh/repos","events_url":"https://api.github.com/users/marcosschroh/events{/privacy}","received_events_url":"https://api.github.com/users/marcosschroh/received_events","type":"User","site_admin":false},"html_url":"https://github.com/marcosschroh/starlette","description":"The little ASGI framework that shines. ✨","fork":true,"url":"https://api.github.com/repos/marcosschroh/starlette","forks_url":"https://api.github.com/repos/marcosschroh/starlette/forks","keys_url":"https://api.github.com/repos/marcosschroh/starlette/keys{/key_id}","collaborators_url":"https://api.github.com/repos/marcosschroh/starlette/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/marcosschroh/starlette/teams","hooks_url":"https://api.github.com/repos/marcosschroh/starlette/hooks","issue_events_url":"https://api.github.com/repos/marcosschroh/starlette/issues/events{/number}","events_url":"https://api.github.com/repos/marcosschroh/starlette/events","assignees_url":"https://api.github.com/repos/marcosschroh/starlette/assignees{/user}","branches_url":"https://api.github.com/repos/marcosschroh/starlette/branches{/branch}","tags_url":"https://api.github.com/repos/marcosschroh/starlette/tags","blobs_url":"https://api.github.com/repos/marcosschroh/starlette/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/marcosschroh/starlette/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/marcosschroh/starlette/git/refs{/sha}","trees_url":"https://api.github.com/repos/marcosschroh/starlette/git/trees{/sha}","statuses_url":"https://api.github.com/repos/marcosschroh/starlette/statuses/{sha}","languages_url":"https://api.github.com/repos/marcosschroh/starlette/languages","stargazers_url":"https://api.github.com/repos/marcosschroh/starlette/stargazers","contributors_url":"https://api.github.com/repos/marcosschroh/starlette/contributors","subscribers_url":"https://api.github.com/repos/marcosschroh/starlette/subscribers","subscription_url":"https://api.github.com/repos/marcosschroh/starlette/subscription","commits_url":"https://api.github.com/repos/marcosschroh/starlette/commits{/sha}","git_commits_url":"https://api.github.com/repos/marcosschroh/starlette/git/commits{/sha}","comments_url":"https://api.github.com/repos/marcosschroh/starlette/comments{/number}","issue_comment_url":"https://api.github.com/repos/marcosschroh/starlette/issues/comments{/number}","contents_url":"https://api.github.com/repos/marcosschroh/starlette/contents/{+path}","compare_url":"https://api.github.com/repos/marcosschroh/starlette/compare/{base}...{head}","merges_url":"https://api.github.com/repos/marcosschroh/starlette/merges","archive_url":"https://api.github.com/repos/marcosschroh/starlette/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/marcosschroh/starlette/downloads","issues_url":"https://api.github.com/repos/marcosschroh/starlette/issues{/number}","pulls_url":"https://api.github.com/repos/marcosschroh/starlette/pulls{/number}","milestones_url":"https://api.github.com/repos/marcosschroh/starlette/milestones{/number}","notifications_url":"https://api.github.com/repos/marcosschroh/starlette/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/marcosschroh/starlette/labels{/name}","releases_url":"https://api.github.com/repos/marcosschroh/starlette/releases{/id}","deployments_url":"https://api.github.com/repos/marcosschroh/starlette/deployments","created_at":"2018-09-12T09:58:42Z","updated_at":"2018-09-24T16:19:00Z","pushed_at":"2018-09-26T14:25:48Z","git_url":"git://github.com/marcosschroh/starlette.git","ssh_url":"git@github.com:marcosschroh/starlette.git","clone_url":"https://github.com/marcosschroh/starlette.git","svn_url":"https://github.com/marcosschroh/starlette","homepage":"https://www.starlette.io/","size":1848,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"bsd-3-clause","name":"BSD 3-Clause \"New\" or \"Revised\" License","spdx_id":"BSD-3-Clause","url":"https://api.github.com/licenses/bsd-3-clause","node_id":"MDc6TGljZW5zZTU="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"encode:master","ref":"master","sha":"12e4ef60d74526fd6e5e02bfc832e712132634c7","user":{"login":"encode","id":19159390,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE5MTU5Mzkw","avatar_url":"https://avatars1.githubusercontent.com/u/19159390?v=4","gravatar_id":"","url":"https://api.github.com/users/encode","html_url":"https://github.com/encode","followers_url":"https://api.github.com/users/encode/followers","following_url":"https://api.github.com/users/encode/following{/other_user}","gists_url":"https://api.github.com/users/encode/gists{/gist_id}","starred_url":"https://api.github.com/users/encode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/encode/subscriptions","organizations_url":"https://api.github.com/users/encode/orgs","repos_url":"https://api.github.com/users/encode/repos","events_url":"https://api.github.com/users/encode/events{/privacy}","received_events_url":"https://api.github.com/users/encode/received_events","type":"Organization","site_admin":false},"repo":{"id":138597372,"node_id":"MDEwOlJlcG9zaXRvcnkxMzg1OTczNzI=","name":"starlette","full_name":"encode/starlette","private":false,"owner":{"login":"encode","id":19159390,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE5MTU5Mzkw","avatar_url":"https://avatars1.githubusercontent.com/u/19159390?v=4","gravatar_id":"","url":"https://api.github.com/users/encode","html_url":"https://github.com/encode","followers_url":"https://api.github.com/users/encode/followers","following_url":"https://api.github.com/users/encode/following{/other_user}","gists_url":"https://api.github.com/users/encode/gists{/gist_id}","starred_url":"https://api.github.com/users/encode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/encode/subscriptions","organizations_url":"https://api.github.com/users/encode/orgs","repos_url":"https://api.github.com/users/encode/repos","events_url":"https://api.github.com/users/encode/events{/privacy}","received_events_url":"https://api.github.com/users/encode/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/encode/starlette","description":"The little ASGI framework that shines. ✨","fork":false,"url":"https://api.github.com/repos/encode/starlette","forks_url":"https://api.github.com/repos/encode/starlette/forks","keys_url":"https://api.github.com/repos/encode/starlette/keys{/key_id}","collaborators_url":"https://api.github.com/repos/encode/starlette/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/encode/starlette/teams","hooks_url":"https://api.github.com/repos/encode/starlette/hooks","issue_events_url":"https://api.github.com/repos/encode/starlette/issues/events{/number}","events_url":"https://api.github.com/repos/encode/starlette/events","assignees_url":"https://api.github.com/repos/encode/starlette/assignees{/user}","branches_url":"https://api.github.com/repos/encode/starlette/branches{/branch}","tags_url":"https://api.github.com/repos/encode/starlette/tags","blobs_url":"https://api.github.com/repos/encode/starlette/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/encode/starlette/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/encode/starlette/git/refs{/sha}","trees_url":"https://api.github.com/repos/encode/starlette/git/trees{/sha}","statuses_url":"https://api.github.com/repos/encode/starlette/statuses/{sha}","languages_url":"https://api.github.com/repos/encode/starlette/languages","stargazers_url":"https://api.github.com/repos/encode/starlette/stargazers","contributors_url":"https://api.github.com/repos/encode/starlette/contributors","subscribers_url":"https://api.github.com/repos/encode/starlette/subscribers","subscription_url":"https://api.github.com/repos/encode/starlette/subscription","commits_url":"https://api.github.com/repos/encode/starlette/commits{/sha}","git_commits_url":"https://api.github.com/repos/encode/starlette/git/commits{/sha}","comments_url":"https://api.github.com/repos/encode/starlette/comments{/number}","issue_comment_url":"https://api.github.com/repos/encode/starlette/issues/comments{/number}","contents_url":"https://api.github.com/repos/encode/starlette/contents/{+path}","compare_url":"https://api.github.com/repos/encode/starlette/compare/{base}...{head}","merges_url":"https://api.github.com/repos/encode/starlette/merges","archive_url":"https://api.github.com/repos/encode/starlette/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/encode/starlette/downloads","issues_url":"https://api.github.com/repos/encode/starlette/issues{/number}","pulls_url":"https://api.github.com/repos/encode/starlette/pulls{/number}","milestones_url":"https://api.github.com/repos/encode/starlette/milestones{/number}","notifications_url":"https://api.github.com/repos/encode/starlette/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/encode/starlette/labels{/name}","releases_url":"https://api.github.com/repos/encode/starlette/releases{/id}","deployments_url":"https://api.github.com/repos/encode/starlette/deployments","created_at":"2018-06-25T13:16:21Z","updated_at":"2018-09-26T14:30:41Z","pushed_at":"2018-09-26T14:30:39Z","git_url":"git://github.com/encode/starlette.git","ssh_url":"git@github.com:encode/starlette.git","clone_url":"https://github.com/encode/starlette.git","svn_url":"https://github.com/encode/starlette","homepage":"https://www.starlette.io/","size":1848,"stargazers_count":165,"watchers_count":165,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":10,"mirror_url":null,"archived":false,"open_issues_count":25,"license":{"key":"bsd-3-clause","name":"BSD 3-Clause \"New\" or \"Revised\" License","spdx_id":"BSD-3-Clause","url":"https://api.github.com/licenses/bsd-3-clause","node_id":"MDc6TGljZW5zZTU="},"forks":10,"open_issues":25,"watchers":165,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/encode/starlette/pulls/70"},"html":{"href":"https://github.com/encode/starlette/pull/70"},"issue":{"href":"https://api.github.com/repos/encode/starlette/issues/70"},"comments":{"href":"https://api.github.com/repos/encode/starlette/issues/70/comments"},"review_comments":{"href":"https://api.github.com/repos/encode/starlette/pulls/70/comments"},"review_comment":{"href":"https://api.github.com/repos/encode/starlette/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/encode/starlette/pulls/70/commits"},"statuses":{"href":"https://api.github.com/repos/encode/starlette/statuses/2a3f48fc3356fd5c7253eb00b83e83a484bc5b8a"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"tomchristie"}}