{"action":"created","comment":{"url":"https://api.github.com/repos/aio-libs/multidict/pulls/comments/193546079","pull_request_review_id":126539335,"id":193546079,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5MzU0NjA3OQ==","diff_hunk":"@@ -1115,13 +1115,66 @@ pair_list_update_from_seq(PyObject *op, PyObject *seq)\n     return -1;\n }\n \n-PyObject *\n-_pair_list_calc_identity(PyObject *op, PyObject *key)\n+int\n+pair_list_eq_to_mapping(PyObject *op, PyObject *other)\n {\n-    pair_list_t *list = (pair_list_t *)op;\n-    return list->calc_identity(key);\n+    PyObject *key = NULL;\n+    PyObject *avalue = NULL;\n+    PyObject *bvalue = NULL;\n+\n+    Py_ssize_t pos;\n+    \n+    int cmp;\n+    int is_eq;\n+\n+    if (!PyMapping_Check(other)) {\n+        PyErr_Format(PyExc_TypeError,\n+                     \"other argument must be a mapping, not %s\",\n+                     Py_TYPE(other)->tp_name);\n+        return -1;\n+    }\n+\n+    if (pair_list_len(op) != PyMapping_Length(other)) {\n+        return 0;\n+    }\n+\n+    pos = 0;\n+    is_eq = 1;\n+    while (pair_list_next(op, &pos, NULL, &key, &avalue)) {\n+        if (!PyMapping_HasKey(other, key)) {","path":"multidict/_pair_list.c","position":null,"original_position":34,"commit_id":"067a8f32eb2217ecb135d4ffbb0feb132a1ae48d","original_commit_id":"c72f61d052c5b55f9acb4b9459a15e797ef388c5","user":{"login":"iemelyanov","id":4599093,"node_id":"MDQ6VXNlcjQ1OTkwOTM=","avatar_url":"https://avatars1.githubusercontent.com/u/4599093?v=4","gravatar_id":"","url":"https://api.github.com/users/iemelyanov","html_url":"https://github.com/iemelyanov","followers_url":"https://api.github.com/users/iemelyanov/followers","following_url":"https://api.github.com/users/iemelyanov/following{/other_user}","gists_url":"https://api.github.com/users/iemelyanov/gists{/gist_id}","starred_url":"https://api.github.com/users/iemelyanov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iemelyanov/subscriptions","organizations_url":"https://api.github.com/users/iemelyanov/orgs","repos_url":"https://api.github.com/users/iemelyanov/repos","events_url":"https://api.github.com/users/iemelyanov/events{/privacy}","received_events_url":"https://api.github.com/users/iemelyanov/received_events","type":"User","site_admin":false},"body":"Yes, you right.","created_at":"2018-06-06T20:21:15Z","updated_at":"2018-06-06T20:21:16Z","html_url":"https://github.com/aio-libs/multidict/pull/257#discussion_r193546079","pull_request_url":"https://api.github.com/repos/aio-libs/multidict/pulls/257","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/aio-libs/multidict/pulls/comments/193546079"},"html":{"href":"https://github.com/aio-libs/multidict/pull/257#discussion_r193546079"},"pull_request":{"href":"https://api.github.com/repos/aio-libs/multidict/pulls/257"}},"in_reply_to_id":193538835},"pull_request":{"url":"https://api.github.com/repos/aio-libs/multidict/pulls/257","id":192489439,"node_id":"MDExOlB1bGxSZXF1ZXN0MTkyNDg5NDM5","html_url":"https://github.com/aio-libs/multidict/pull/257","diff_url":"https://github.com/aio-libs/multidict/pull/257.diff","patch_url":"https://github.com/aio-libs/multidict/pull/257.patch","issue_url":"https://api.github.com/repos/aio-libs/multidict/issues/257","number":257,"state":"open","locked":false,"title":"Move mapping comparsion from cython to C.","user":{"login":"iemelyanov","id":4599093,"node_id":"MDQ6VXNlcjQ1OTkwOTM=","avatar_url":"https://avatars1.githubusercontent.com/u/4599093?v=4","gravatar_id":"","url":"https://api.github.com/users/iemelyanov","html_url":"https://github.com/iemelyanov","followers_url":"https://api.github.com/users/iemelyanov/followers","following_url":"https://api.github.com/users/iemelyanov/following{/other_user}","gists_url":"https://api.github.com/users/iemelyanov/gists{/gist_id}","starred_url":"https://api.github.com/users/iemelyanov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iemelyanov/subscriptions","organizations_url":"https://api.github.com/users/iemelyanov/orgs","repos_url":"https://api.github.com/users/iemelyanov/repos","events_url":"https://api.github.com/users/iemelyanov/events{/privacy}","received_events_url":"https://api.github.com/users/iemelyanov/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-06-04T18:22:22Z","updated_at":"2018-06-06T20:21:16Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7dafdc6f403df584daf59ec4777a4ec7366660b3","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/aio-libs/multidict/pulls/257/commits","review_comments_url":"https://api.github.com/repos/aio-libs/multidict/pulls/257/comments","review_comment_url":"https://api.github.com/repos/aio-libs/multidict/pulls/comments{/number}","comments_url":"https://api.github.com/repos/aio-libs/multidict/issues/257/comments","statuses_url":"https://api.github.com/repos/aio-libs/multidict/statuses/067a8f32eb2217ecb135d4ffbb0feb132a1ae48d","head":{"label":"iemelyanov:c_ext_pair_list_eq_to_mapping","ref":"c_ext_pair_list_eq_to_mapping","sha":"067a8f32eb2217ecb135d4ffbb0feb132a1ae48d","user":{"login":"iemelyanov","id":4599093,"node_id":"MDQ6VXNlcjQ1OTkwOTM=","avatar_url":"https://avatars1.githubusercontent.com/u/4599093?v=4","gravatar_id":"","url":"https://api.github.com/users/iemelyanov","html_url":"https://github.com/iemelyanov","followers_url":"https://api.github.com/users/iemelyanov/followers","following_url":"https://api.github.com/users/iemelyanov/following{/other_user}","gists_url":"https://api.github.com/users/iemelyanov/gists{/gist_id}","starred_url":"https://api.github.com/users/iemelyanov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iemelyanov/subscriptions","organizations_url":"https://api.github.com/users/iemelyanov/orgs","repos_url":"https://api.github.com/users/iemelyanov/repos","events_url":"https://api.github.com/users/iemelyanov/events{/privacy}","received_events_url":"https://api.github.com/users/iemelyanov/received_events","type":"User","site_admin":false},"repo":{"id":130253491,"node_id":"MDEwOlJlcG9zaXRvcnkxMzAyNTM0OTE=","name":"multidict","full_name":"iemelyanov/multidict","owner":{"login":"iemelyanov","id":4599093,"node_id":"MDQ6VXNlcjQ1OTkwOTM=","avatar_url":"https://avatars1.githubusercontent.com/u/4599093?v=4","gravatar_id":"","url":"https://api.github.com/users/iemelyanov","html_url":"https://github.com/iemelyanov","followers_url":"https://api.github.com/users/iemelyanov/followers","following_url":"https://api.github.com/users/iemelyanov/following{/other_user}","gists_url":"https://api.github.com/users/iemelyanov/gists{/gist_id}","starred_url":"https://api.github.com/users/iemelyanov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iemelyanov/subscriptions","organizations_url":"https://api.github.com/users/iemelyanov/orgs","repos_url":"https://api.github.com/users/iemelyanov/repos","events_url":"https://api.github.com/users/iemelyanov/events{/privacy}","received_events_url":"https://api.github.com/users/iemelyanov/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/iemelyanov/multidict","description":"multidict implementation","fork":true,"url":"https://api.github.com/repos/iemelyanov/multidict","forks_url":"https://api.github.com/repos/iemelyanov/multidict/forks","keys_url":"https://api.github.com/repos/iemelyanov/multidict/keys{/key_id}","collaborators_url":"https://api.github.com/repos/iemelyanov/multidict/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/iemelyanov/multidict/teams","hooks_url":"https://api.github.com/repos/iemelyanov/multidict/hooks","issue_events_url":"https://api.github.com/repos/iemelyanov/multidict/issues/events{/number}","events_url":"https://api.github.com/repos/iemelyanov/multidict/events","assignees_url":"https://api.github.com/repos/iemelyanov/multidict/assignees{/user}","branches_url":"https://api.github.com/repos/iemelyanov/multidict/branches{/branch}","tags_url":"https://api.github.com/repos/iemelyanov/multidict/tags","blobs_url":"https://api.github.com/repos/iemelyanov/multidict/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/iemelyanov/multidict/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/iemelyanov/multidict/git/refs{/sha}","trees_url":"https://api.github.com/repos/iemelyanov/multidict/git/trees{/sha}","statuses_url":"https://api.github.com/repos/iemelyanov/multidict/statuses/{sha}","languages_url":"https://api.github.com/repos/iemelyanov/multidict/languages","stargazers_url":"https://api.github.com/repos/iemelyanov/multidict/stargazers","contributors_url":"https://api.github.com/repos/iemelyanov/multidict/contributors","subscribers_url":"https://api.github.com/repos/iemelyanov/multidict/subscribers","subscription_url":"https://api.github.com/repos/iemelyanov/multidict/subscription","commits_url":"https://api.github.com/repos/iemelyanov/multidict/commits{/sha}","git_commits_url":"https://api.github.com/repos/iemelyanov/multidict/git/commits{/sha}","comments_url":"https://api.github.com/repos/iemelyanov/multidict/comments{/number}","issue_comment_url":"https://api.github.com/repos/iemelyanov/multidict/issues/comments{/number}","contents_url":"https://api.github.com/repos/iemelyanov/multidict/contents/{+path}","compare_url":"https://api.github.com/repos/iemelyanov/multidict/compare/{base}...{head}","merges_url":"https://api.github.com/repos/iemelyanov/multidict/merges","archive_url":"https://api.github.com/repos/iemelyanov/multidict/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/iemelyanov/multidict/downloads","issues_url":"https://api.github.com/repos/iemelyanov/multidict/issues{/number}","pulls_url":"https://api.github.com/repos/iemelyanov/multidict/pulls{/number}","milestones_url":"https://api.github.com/repos/iemelyanov/multidict/milestones{/number}","notifications_url":"https://api.github.com/repos/iemelyanov/multidict/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/iemelyanov/multidict/labels{/name}","releases_url":"https://api.github.com/repos/iemelyanov/multidict/releases{/id}","deployments_url":"https://api.github.com/repos/iemelyanov/multidict/deployments","created_at":"2018-04-19T18:01:33Z","updated_at":"2018-05-26T21:25:25Z","pushed_at":"2018-06-06T20:19:05Z","git_url":"git://github.com/iemelyanov/multidict.git","ssh_url":"git@github.com:iemelyanov/multidict.git","clone_url":"https://github.com/iemelyanov/multidict.git","svn_url":"https://github.com/iemelyanov/multidict","homepage":"https://multidict.readthedocs.io","size":679,"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":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"aio-libs:master","ref":"master","sha":"413af5e3a4e9400e2a31eca0792686e34bf4fe6f","user":{"login":"aio-libs","id":7049303,"node_id":"MDEyOk9yZ2FuaXphdGlvbjcwNDkzMDM=","avatar_url":"https://avatars2.githubusercontent.com/u/7049303?v=4","gravatar_id":"","url":"https://api.github.com/users/aio-libs","html_url":"https://github.com/aio-libs","followers_url":"https://api.github.com/users/aio-libs/followers","following_url":"https://api.github.com/users/aio-libs/following{/other_user}","gists_url":"https://api.github.com/users/aio-libs/gists{/gist_id}","starred_url":"https://api.github.com/users/aio-libs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aio-libs/subscriptions","organizations_url":"https://api.github.com/users/aio-libs/orgs","repos_url":"https://api.github.com/users/aio-libs/repos","events_url":"https://api.github.com/users/aio-libs/events{/privacy}","received_events_url":"https://api.github.com/users/aio-libs/received_events","type":"Organization","site_admin":false},"repo":{"id":51206425,"node_id":"MDEwOlJlcG9zaXRvcnk1MTIwNjQyNQ==","name":"multidict","full_name":"aio-libs/multidict","owner":{"login":"aio-libs","id":7049303,"node_id":"MDEyOk9yZ2FuaXphdGlvbjcwNDkzMDM=","avatar_url":"https://avatars2.githubusercontent.com/u/7049303?v=4","gravatar_id":"","url":"https://api.github.com/users/aio-libs","html_url":"https://github.com/aio-libs","followers_url":"https://api.github.com/users/aio-libs/followers","following_url":"https://api.github.com/users/aio-libs/following{/other_user}","gists_url":"https://api.github.com/users/aio-libs/gists{/gist_id}","starred_url":"https://api.github.com/users/aio-libs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aio-libs/subscriptions","organizations_url":"https://api.github.com/users/aio-libs/orgs","repos_url":"https://api.github.com/users/aio-libs/repos","events_url":"https://api.github.com/users/aio-libs/events{/privacy}","received_events_url":"https://api.github.com/users/aio-libs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/aio-libs/multidict","description":"multidict implementation","fork":false,"url":"https://api.github.com/repos/aio-libs/multidict","forks_url":"https://api.github.com/repos/aio-libs/multidict/forks","keys_url":"https://api.github.com/repos/aio-libs/multidict/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aio-libs/multidict/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aio-libs/multidict/teams","hooks_url":"https://api.github.com/repos/aio-libs/multidict/hooks","issue_events_url":"https://api.github.com/repos/aio-libs/multidict/issues/events{/number}","events_url":"https://api.github.com/repos/aio-libs/multidict/events","assignees_url":"https://api.github.com/repos/aio-libs/multidict/assignees{/user}","branches_url":"https://api.github.com/repos/aio-libs/multidict/branches{/branch}","tags_url":"https://api.github.com/repos/aio-libs/multidict/tags","blobs_url":"https://api.github.com/repos/aio-libs/multidict/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aio-libs/multidict/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aio-libs/multidict/git/refs{/sha}","trees_url":"https://api.github.com/repos/aio-libs/multidict/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aio-libs/multidict/statuses/{sha}","languages_url":"https://api.github.com/repos/aio-libs/multidict/languages","stargazers_url":"https://api.github.com/repos/aio-libs/multidict/stargazers","contributors_url":"https://api.github.com/repos/aio-libs/multidict/contributors","subscribers_url":"https://api.github.com/repos/aio-libs/multidict/subscribers","subscription_url":"https://api.github.com/repos/aio-libs/multidict/subscription","commits_url":"https://api.github.com/repos/aio-libs/multidict/commits{/sha}","git_commits_url":"https://api.github.com/repos/aio-libs/multidict/git/commits{/sha}","comments_url":"https://api.github.com/repos/aio-libs/multidict/comments{/number}","issue_comment_url":"https://api.github.com/repos/aio-libs/multidict/issues/comments{/number}","contents_url":"https://api.github.com/repos/aio-libs/multidict/contents/{+path}","compare_url":"https://api.github.com/repos/aio-libs/multidict/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aio-libs/multidict/merges","archive_url":"https://api.github.com/repos/aio-libs/multidict/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aio-libs/multidict/downloads","issues_url":"https://api.github.com/repos/aio-libs/multidict/issues{/number}","pulls_url":"https://api.github.com/repos/aio-libs/multidict/pulls{/number}","milestones_url":"https://api.github.com/repos/aio-libs/multidict/milestones{/number}","notifications_url":"https://api.github.com/repos/aio-libs/multidict/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aio-libs/multidict/labels{/name}","releases_url":"https://api.github.com/repos/aio-libs/multidict/releases{/id}","deployments_url":"https://api.github.com/repos/aio-libs/multidict/deployments","created_at":"2016-02-06T14:52:32Z","updated_at":"2018-06-04T09:00:17Z","pushed_at":"2018-06-06T20:19:07Z","git_url":"git://github.com/aio-libs/multidict.git","ssh_url":"git@github.com:aio-libs/multidict.git","clone_url":"https://github.com/aio-libs/multidict.git","svn_url":"https://github.com/aio-libs/multidict","homepage":"https://multidict.readthedocs.io","size":619,"stargazers_count":85,"watchers_count":85,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":28,"mirror_url":null,"archived":false,"open_issues_count":16,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":28,"open_issues":16,"watchers":85,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/aio-libs/multidict/pulls/257"},"html":{"href":"https://github.com/aio-libs/multidict/pull/257"},"issue":{"href":"https://api.github.com/repos/aio-libs/multidict/issues/257"},"comments":{"href":"https://api.github.com/repos/aio-libs/multidict/issues/257/comments"},"review_comments":{"href":"https://api.github.com/repos/aio-libs/multidict/pulls/257/comments"},"review_comment":{"href":"https://api.github.com/repos/aio-libs/multidict/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/aio-libs/multidict/pulls/257/commits"},"statuses":{"href":"https://api.github.com/repos/aio-libs/multidict/statuses/067a8f32eb2217ecb135d4ffbb0feb132a1ae48d"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"iemelyanov"}}