{"action":"created","comment":{"url":"https://api.github.com/repos/RustPython/RustPython/pulls/comments/245093255","pull_request_review_id":189132358,"id":245093255,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0NTA5MzI1NQ==","diff_hunk":"@@ -730,100 +730,80 @@ fn builtin_zip(vm: &mut VirtualMachine, args: PyFuncArgs) -> PyResult {\n \n // builtin___import__\n \n-pub fn make_module(ctx: &PyContext) -> PyObjectRef {\n-    let mod_name = \"__builtins__\".to_string();\n-    let py_mod = ctx.new_module(&mod_name, ctx.new_scope(None));\n-\n-    //set __name__ fixes: https://github.com/RustPython/RustPython/issues/146\n-    ctx.set_attr(&py_mod, \"__name__\", ctx.new_str(String::from(\"__main__\")));\n-\n-    ctx.set_item(&py_mod, \"abs\", ctx.new_rustfunc(builtin_abs));\n-    ctx.set_attr(&py_mod, \"all\", ctx.new_rustfunc(builtin_all));\n-    ctx.set_attr(&py_mod, \"any\", ctx.new_rustfunc(builtin_any));\n-    ctx.set_attr(&py_mod, \"bin\", ctx.new_rustfunc(builtin_bin));\n-    ctx.set_attr(&py_mod, \"bool\", ctx.bool_type());\n-    ctx.set_attr(&py_mod, \"bytearray\", ctx.bytearray_type());\n-    ctx.set_attr(&py_mod, \"bytes\", ctx.bytes_type());\n-    ctx.set_attr(&py_mod, \"callable\", ctx.new_rustfunc(builtin_callable));\n-    ctx.set_attr(&py_mod, \"chr\", ctx.new_rustfunc(builtin_chr));\n-    ctx.set_attr(&py_mod, \"classmethod\", ctx.classmethod_type());\n-    ctx.set_attr(&py_mod, \"compile\", ctx.new_rustfunc(builtin_compile));\n-    ctx.set_attr(&py_mod, \"complex\", ctx.complex_type());\n-    ctx.set_attr(&py_mod, \"delattr\", ctx.new_rustfunc(builtin_delattr));\n-    ctx.set_attr(&py_mod, \"dict\", ctx.dict_type());\n-    ctx.set_attr(&py_mod, \"divmod\", ctx.new_rustfunc(builtin_divmod));\n-    ctx.set_attr(&py_mod, \"dir\", ctx.new_rustfunc(builtin_dir));\n-    ctx.set_attr(&py_mod, \"enumerate\", ctx.new_rustfunc(builtin_enumerate));\n-    ctx.set_attr(&py_mod, \"eval\", ctx.new_rustfunc(builtin_eval));\n-    ctx.set_attr(&py_mod, \"exec\", ctx.new_rustfunc(builtin_exec));\n-    ctx.set_attr(&py_mod, \"float\", ctx.float_type());\n-    ctx.set_attr(&py_mod, \"frozenset\", ctx.frozenset_type());\n-    ctx.set_attr(&py_mod, \"filter\", ctx.new_rustfunc(builtin_filter));\n-    ctx.set_attr(&py_mod, \"format\", ctx.new_rustfunc(builtin_format));\n-    ctx.set_attr(&py_mod, \"getattr\", ctx.new_rustfunc(builtin_getattr));\n-    ctx.set_attr(&py_mod, \"hasattr\", ctx.new_rustfunc(builtin_hasattr));\n-    ctx.set_attr(&py_mod, \"hash\", ctx.new_rustfunc(builtin_hash));\n-    ctx.set_attr(&py_mod, \"hex\", ctx.new_rustfunc(builtin_hex));\n-    ctx.set_attr(&py_mod, \"id\", ctx.new_rustfunc(builtin_id));\n-    ctx.set_attr(&py_mod, \"int\", ctx.int_type());\n-    ctx.set_attr(&py_mod, \"isinstance\", ctx.new_rustfunc(builtin_isinstance));\n-    ctx.set_attr(&py_mod, \"issubclass\", ctx.new_rustfunc(builtin_issubclass));\n-    ctx.set_attr(&py_mod, \"iter\", ctx.new_rustfunc(builtin_iter));\n-    ctx.set_attr(&py_mod, \"len\", ctx.new_rustfunc(builtin_len));\n-    ctx.set_attr(&py_mod, \"list\", ctx.list_type());\n-    ctx.set_attr(&py_mod, \"locals\", ctx.new_rustfunc(builtin_locals));\n-    ctx.set_attr(&py_mod, \"map\", ctx.new_rustfunc(builtin_map));\n-    ctx.set_attr(&py_mod, \"max\", ctx.new_rustfunc(builtin_max));\n-    ctx.set_attr(&py_mod, \"min\", ctx.new_rustfunc(builtin_min));\n-    ctx.set_attr(&py_mod, \"object\", ctx.object());\n-    ctx.set_attr(&py_mod, \"oct\", ctx.new_rustfunc(builtin_oct));\n-    ctx.set_attr(&py_mod, \"ord\", ctx.new_rustfunc(builtin_ord));\n-    ctx.set_attr(&py_mod, \"next\", ctx.new_rustfunc(builtin_next));\n-    ctx.set_attr(&py_mod, \"pow\", ctx.new_rustfunc(builtin_pow));\n-    ctx.set_attr(&py_mod, \"print\", ctx.new_rustfunc(builtin_print));\n-    ctx.set_attr(&py_mod, \"property\", ctx.property_type());\n-    ctx.set_attr(&py_mod, \"range\", ctx.new_rustfunc(builtin_range));\n-    ctx.set_attr(&py_mod, \"repr\", ctx.new_rustfunc(builtin_repr));\n-    ctx.set_attr(&py_mod, \"set\", ctx.set_type());\n-    ctx.set_attr(&py_mod, \"setattr\", ctx.new_rustfunc(builtin_setattr));\n-    ctx.set_attr(&py_mod, \"staticmethod\", ctx.staticmethod_type());\n-    ctx.set_attr(&py_mod, \"str\", ctx.str_type());\n-    ctx.set_attr(&py_mod, \"sum\", ctx.new_rustfunc(builtin_sum));\n+pub fn mk_module(ctx: &PyContext) -> PyObjectRef {\n+    let py_mod = py_item!(ctx, mod __builtins__ {","path":"vm/src/builtins.rs","position":null,"original_position":64,"commit_id":"83c859d91e4d6c069e92f70fa1b8939579dea5bd","original_commit_id":"901510deeb3a44ac7adf89c6f1a940fbe55857f8","user":{"login":"windelbouwman","id":1816500,"node_id":"MDQ6VXNlcjE4MTY1MDA=","avatar_url":"https://avatars0.githubusercontent.com/u/1816500?v=4","gravatar_id":"","url":"https://api.github.com/users/windelbouwman","html_url":"https://github.com/windelbouwman","followers_url":"https://api.github.com/users/windelbouwman/followers","following_url":"https://api.github.com/users/windelbouwman/following{/other_user}","gists_url":"https://api.github.com/users/windelbouwman/gists{/gist_id}","starred_url":"https://api.github.com/users/windelbouwman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/windelbouwman/subscriptions","organizations_url":"https://api.github.com/users/windelbouwman/orgs","repos_url":"https://api.github.com/users/windelbouwman/repos","events_url":"https://api.github.com/users/windelbouwman/events{/privacy}","received_events_url":"https://api.github.com/users/windelbouwman/received_events","type":"User","site_admin":false},"body":"My qualms with this change are the following:\r\n- `py_item` is too vague, it is better to be more concrete, so that is clear what is meant.\r\n- I prefer functions over macros in general. Did you for example check code size before and after your change? Also in rust, macros can be very ambiguous. A function is more clear in my opinion. I would say, use macros when you have to, functions otherwise.\r\n- The fact that we need to set macro limit to 128 might be an indication that it is probably too much macro.\r\n\r\nThat being said, I would like feedback from others about this, if more people are in favor, I'm all for it!","created_at":"2019-01-03T18:40:18Z","updated_at":"2019-01-03T18:40:18Z","html_url":"https://github.com/RustPython/RustPython/pull/247#discussion_r245093255","pull_request_url":"https://api.github.com/repos/RustPython/RustPython/pulls/247","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/RustPython/RustPython/pulls/comments/245093255"},"html":{"href":"https://github.com/RustPython/RustPython/pull/247#discussion_r245093255"},"pull_request":{"href":"https://api.github.com/repos/RustPython/RustPython/pulls/247"}},"in_reply_to_id":244855893},"pull_request":{"url":"https://api.github.com/repos/RustPython/RustPython/pulls/247","id":241845700,"node_id":"MDExOlB1bGxSZXF1ZXN0MjQxODQ1NzAw","html_url":"https://github.com/RustPython/RustPython/pull/247","diff_url":"https://github.com/RustPython/RustPython/pull/247.diff","patch_url":"https://github.com/RustPython/RustPython/pull/247.patch","issue_url":"https://api.github.com/repos/RustPython/RustPython/issues/247","number":247,"state":"open","locked":false,"title":"Add helpful macros for dealing with python types","user":{"login":"coolreader18","id":33094578,"node_id":"MDQ6VXNlcjMzMDk0NTc4","avatar_url":"https://avatars2.githubusercontent.com/u/33094578?v=4","gravatar_id":"","url":"https://api.github.com/users/coolreader18","html_url":"https://github.com/coolreader18","followers_url":"https://api.github.com/users/coolreader18/followers","following_url":"https://api.github.com/users/coolreader18/following{/other_user}","gists_url":"https://api.github.com/users/coolreader18/gists{/gist_id}","starred_url":"https://api.github.com/users/coolreader18/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coolreader18/subscriptions","organizations_url":"https://api.github.com/users/coolreader18/orgs","repos_url":"https://api.github.com/users/coolreader18/repos","events_url":"https://api.github.com/users/coolreader18/events{/privacy}","received_events_url":"https://api.github.com/users/coolreader18/received_events","type":"User","site_admin":false},"body":"Usage:\r\n\r\n```rust\r\npy_item!(ctx, $py_item)\r\n```\r\nPossible `$py_item` values:\r\n```rust\r\nmod $mod_name { $items }\r\nstruct $class_name { $items }\r\nstruct $class_name($parent_class) { $items }\r\n// $rustfunc is of type `Fn(&mut VirtualMachine, PyFuncArgs) -> PyResult`\r\nfn $func_name = $rustfunc;\r\n// $item_value is a PyObjectRef\r\nlet $item_name = $item_value;\r\n```\r\n\r\n```rust\r\npy_get_item!(($val).attr1.attr2)\r\n```\r\nAttempts to get the chain of attributes, returning an option that contains the value of the last one.","created_at":"2019-01-02T20:56:44Z","updated_at":"2019-01-03T18:40:18Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ab6562364a3337e17e7d2a7a5e72633f21783f1a","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/RustPython/RustPython/pulls/247/commits","review_comments_url":"https://api.github.com/repos/RustPython/RustPython/pulls/247/comments","review_comment_url":"https://api.github.com/repos/RustPython/RustPython/pulls/comments{/number}","comments_url":"https://api.github.com/repos/RustPython/RustPython/issues/247/comments","statuses_url":"https://api.github.com/repos/RustPython/RustPython/statuses/83c859d91e4d6c069e92f70fa1b8939579dea5bd","head":{"label":"coolreader18:py-macros","ref":"py-macros","sha":"83c859d91e4d6c069e92f70fa1b8939579dea5bd","user":{"login":"coolreader18","id":33094578,"node_id":"MDQ6VXNlcjMzMDk0NTc4","avatar_url":"https://avatars2.githubusercontent.com/u/33094578?v=4","gravatar_id":"","url":"https://api.github.com/users/coolreader18","html_url":"https://github.com/coolreader18","followers_url":"https://api.github.com/users/coolreader18/followers","following_url":"https://api.github.com/users/coolreader18/following{/other_user}","gists_url":"https://api.github.com/users/coolreader18/gists{/gist_id}","starred_url":"https://api.github.com/users/coolreader18/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coolreader18/subscriptions","organizations_url":"https://api.github.com/users/coolreader18/orgs","repos_url":"https://api.github.com/users/coolreader18/repos","events_url":"https://api.github.com/users/coolreader18/events{/privacy}","received_events_url":"https://api.github.com/users/coolreader18/received_events","type":"User","site_admin":false},"repo":{"id":161292304,"node_id":"MDEwOlJlcG9zaXRvcnkxNjEyOTIzMDQ=","name":"RustPython","full_name":"coolreader18/RustPython","private":false,"owner":{"login":"coolreader18","id":33094578,"node_id":"MDQ6VXNlcjMzMDk0NTc4","avatar_url":"https://avatars2.githubusercontent.com/u/33094578?v=4","gravatar_id":"","url":"https://api.github.com/users/coolreader18","html_url":"https://github.com/coolreader18","followers_url":"https://api.github.com/users/coolreader18/followers","following_url":"https://api.github.com/users/coolreader18/following{/other_user}","gists_url":"https://api.github.com/users/coolreader18/gists{/gist_id}","starred_url":"https://api.github.com/users/coolreader18/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coolreader18/subscriptions","organizations_url":"https://api.github.com/users/coolreader18/orgs","repos_url":"https://api.github.com/users/coolreader18/repos","events_url":"https://api.github.com/users/coolreader18/events{/privacy}","received_events_url":"https://api.github.com/users/coolreader18/received_events","type":"User","site_admin":false},"html_url":"https://github.com/coolreader18/RustPython","description":"A Python Interpreter written in Rust","fork":true,"url":"https://api.github.com/repos/coolreader18/RustPython","forks_url":"https://api.github.com/repos/coolreader18/RustPython/forks","keys_url":"https://api.github.com/repos/coolreader18/RustPython/keys{/key_id}","collaborators_url":"https://api.github.com/repos/coolreader18/RustPython/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/coolreader18/RustPython/teams","hooks_url":"https://api.github.com/repos/coolreader18/RustPython/hooks","issue_events_url":"https://api.github.com/repos/coolreader18/RustPython/issues/events{/number}","events_url":"https://api.github.com/repos/coolreader18/RustPython/events","assignees_url":"https://api.github.com/repos/coolreader18/RustPython/assignees{/user}","branches_url":"https://api.github.com/repos/coolreader18/RustPython/branches{/branch}","tags_url":"https://api.github.com/repos/coolreader18/RustPython/tags","blobs_url":"https://api.github.com/repos/coolreader18/RustPython/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/coolreader18/RustPython/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/coolreader18/RustPython/git/refs{/sha}","trees_url":"https://api.github.com/repos/coolreader18/RustPython/git/trees{/sha}","statuses_url":"https://api.github.com/repos/coolreader18/RustPython/statuses/{sha}","languages_url":"https://api.github.com/repos/coolreader18/RustPython/languages","stargazers_url":"https://api.github.com/repos/coolreader18/RustPython/stargazers","contributors_url":"https://api.github.com/repos/coolreader18/RustPython/contributors","subscribers_url":"https://api.github.com/repos/coolreader18/RustPython/subscribers","subscription_url":"https://api.github.com/repos/coolreader18/RustPython/subscription","commits_url":"https://api.github.com/repos/coolreader18/RustPython/commits{/sha}","git_commits_url":"https://api.github.com/repos/coolreader18/RustPython/git/commits{/sha}","comments_url":"https://api.github.com/repos/coolreader18/RustPython/comments{/number}","issue_comment_url":"https://api.github.com/repos/coolreader18/RustPython/issues/comments{/number}","contents_url":"https://api.github.com/repos/coolreader18/RustPython/contents/{+path}","compare_url":"https://api.github.com/repos/coolreader18/RustPython/compare/{base}...{head}","merges_url":"https://api.github.com/repos/coolreader18/RustPython/merges","archive_url":"https://api.github.com/repos/coolreader18/RustPython/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/coolreader18/RustPython/downloads","issues_url":"https://api.github.com/repos/coolreader18/RustPython/issues{/number}","pulls_url":"https://api.github.com/repos/coolreader18/RustPython/pulls{/number}","milestones_url":"https://api.github.com/repos/coolreader18/RustPython/milestones{/number}","notifications_url":"https://api.github.com/repos/coolreader18/RustPython/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/coolreader18/RustPython/labels{/name}","releases_url":"https://api.github.com/repos/coolreader18/RustPython/releases{/id}","deployments_url":"https://api.github.com/repos/coolreader18/RustPython/deployments","created_at":"2018-12-11T07:09:45Z","updated_at":"2018-12-29T17:20:43Z","pushed_at":"2019-01-03T04:35:43Z","git_url":"git://github.com/coolreader18/RustPython.git","ssh_url":"git@github.com:coolreader18/RustPython.git","clone_url":"https://github.com/coolreader18/RustPython.git","svn_url":"https://github.com/coolreader18/RustPython","homepage":null,"size":22282,"stargazers_count":0,"watchers_count":0,"language":"Rust","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":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"RustPython:master","ref":"master","sha":"d508d130b6c4c821500115bb27f824e36dbc111c","user":{"login":"RustPython","id":39710557,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM5NzEwNTU3","avatar_url":"https://avatars3.githubusercontent.com/u/39710557?v=4","gravatar_id":"","url":"https://api.github.com/users/RustPython","html_url":"https://github.com/RustPython","followers_url":"https://api.github.com/users/RustPython/followers","following_url":"https://api.github.com/users/RustPython/following{/other_user}","gists_url":"https://api.github.com/users/RustPython/gists{/gist_id}","starred_url":"https://api.github.com/users/RustPython/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RustPython/subscriptions","organizations_url":"https://api.github.com/users/RustPython/orgs","repos_url":"https://api.github.com/users/RustPython/repos","events_url":"https://api.github.com/users/RustPython/events{/privacy}","received_events_url":"https://api.github.com/users/RustPython/received_events","type":"Organization","site_admin":false},"repo":{"id":135201145,"node_id":"MDEwOlJlcG9zaXRvcnkxMzUyMDExNDU=","name":"RustPython","full_name":"RustPython/RustPython","private":false,"owner":{"login":"RustPython","id":39710557,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM5NzEwNTU3","avatar_url":"https://avatars3.githubusercontent.com/u/39710557?v=4","gravatar_id":"","url":"https://api.github.com/users/RustPython","html_url":"https://github.com/RustPython","followers_url":"https://api.github.com/users/RustPython/followers","following_url":"https://api.github.com/users/RustPython/following{/other_user}","gists_url":"https://api.github.com/users/RustPython/gists{/gist_id}","starred_url":"https://api.github.com/users/RustPython/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RustPython/subscriptions","organizations_url":"https://api.github.com/users/RustPython/orgs","repos_url":"https://api.github.com/users/RustPython/repos","events_url":"https://api.github.com/users/RustPython/events{/privacy}","received_events_url":"https://api.github.com/users/RustPython/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/RustPython/RustPython","description":"A Python Interpreter written in Rust","fork":false,"url":"https://api.github.com/repos/RustPython/RustPython","forks_url":"https://api.github.com/repos/RustPython/RustPython/forks","keys_url":"https://api.github.com/repos/RustPython/RustPython/keys{/key_id}","collaborators_url":"https://api.github.com/repos/RustPython/RustPython/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/RustPython/RustPython/teams","hooks_url":"https://api.github.com/repos/RustPython/RustPython/hooks","issue_events_url":"https://api.github.com/repos/RustPython/RustPython/issues/events{/number}","events_url":"https://api.github.com/repos/RustPython/RustPython/events","assignees_url":"https://api.github.com/repos/RustPython/RustPython/assignees{/user}","branches_url":"https://api.github.com/repos/RustPython/RustPython/branches{/branch}","tags_url":"https://api.github.com/repos/RustPython/RustPython/tags","blobs_url":"https://api.github.com/repos/RustPython/RustPython/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/RustPython/RustPython/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/RustPython/RustPython/git/refs{/sha}","trees_url":"https://api.github.com/repos/RustPython/RustPython/git/trees{/sha}","statuses_url":"https://api.github.com/repos/RustPython/RustPython/statuses/{sha}","languages_url":"https://api.github.com/repos/RustPython/RustPython/languages","stargazers_url":"https://api.github.com/repos/RustPython/RustPython/stargazers","contributors_url":"https://api.github.com/repos/RustPython/RustPython/contributors","subscribers_url":"https://api.github.com/repos/RustPython/RustPython/subscribers","subscription_url":"https://api.github.com/repos/RustPython/RustPython/subscription","commits_url":"https://api.github.com/repos/RustPython/RustPython/commits{/sha}","git_commits_url":"https://api.github.com/repos/RustPython/RustPython/git/commits{/sha}","comments_url":"https://api.github.com/repos/RustPython/RustPython/comments{/number}","issue_comment_url":"https://api.github.com/repos/RustPython/RustPython/issues/comments{/number}","contents_url":"https://api.github.com/repos/RustPython/RustPython/contents/{+path}","compare_url":"https://api.github.com/repos/RustPython/RustPython/compare/{base}...{head}","merges_url":"https://api.github.com/repos/RustPython/RustPython/merges","archive_url":"https://api.github.com/repos/RustPython/RustPython/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/RustPython/RustPython/downloads","issues_url":"https://api.github.com/repos/RustPython/RustPython/issues{/number}","pulls_url":"https://api.github.com/repos/RustPython/RustPython/pulls{/number}","milestones_url":"https://api.github.com/repos/RustPython/RustPython/milestones{/number}","notifications_url":"https://api.github.com/repos/RustPython/RustPython/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/RustPython/RustPython/labels{/name}","releases_url":"https://api.github.com/repos/RustPython/RustPython/releases{/id}","deployments_url":"https://api.github.com/repos/RustPython/RustPython/deployments","created_at":"2018-05-28T19:27:01Z","updated_at":"2019-01-03T18:26:41Z","pushed_at":"2019-01-03T18:26:40Z","git_url":"git://github.com/RustPython/RustPython.git","ssh_url":"git@github.com:RustPython/RustPython.git","clone_url":"https://github.com/RustPython/RustPython.git","svn_url":"https://github.com/RustPython/RustPython","homepage":null,"size":22265,"stargazers_count":321,"watchers_count":321,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":25,"mirror_url":null,"archived":false,"open_issues_count":41,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":25,"open_issues":41,"watchers":321,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/RustPython/RustPython/pulls/247"},"html":{"href":"https://github.com/RustPython/RustPython/pull/247"},"issue":{"href":"https://api.github.com/repos/RustPython/RustPython/issues/247"},"comments":{"href":"https://api.github.com/repos/RustPython/RustPython/issues/247/comments"},"review_comments":{"href":"https://api.github.com/repos/RustPython/RustPython/pulls/247/comments"},"review_comment":{"href":"https://api.github.com/repos/RustPython/RustPython/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/RustPython/RustPython/pulls/247/commits"},"statuses":{"href":"https://api.github.com/repos/RustPython/RustPython/statuses/83c859d91e4d6c069e92f70fa1b8939579dea5bd"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"windelbouwman"}}