{"action":"created","comment":{"url":"https://api.github.com/repos/aiidateam/aiida_core/pulls/comments/228099957","pull_request_review_id":168278157,"id":228099957,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyODA5OTk1Nw==","diff_hunk":"@@ -32,72 +54,111 @@ class MakeHashTest(unittest.TestCase):\n     # pylint: disable=missing-docstring,too-few-public-methods\n \n     def test_builtin_types(self):\n-        self.assertEqual(make_hash('something in ASCII'), '82c78710eebc41c0f0684e817944d6f08e54be54a279f9fc263f8403')\n-        self.assertEqual(make_hash(42), 'f7d4da96058de015a3a6f6b98cff45a80a2852fe721b0d06a2627944')\n-        self.assertEqual(make_hash(3.141), '2086094b3fbadc66b71c38281fc079d7c3978e74eb28ca7f3b966371')\n-        self.assertEqual(make_hash(complex(1, 2)), '59975775040ab3a41ca969fc360f0ff1b1663d64046005a6ee68bf7b')\n-        self.assertEqual(make_hash(True), '15ca7d7468e8aa86ea3db945ae856d783e2f92056550a50cb96fe7fd')\n-        self.assertEqual(make_hash(None), '9a5b682a9a6a99a1d2ce4353d52062d511d418af058679d1b9b97570')\n+        test_data = {\n+            'something in ASCII': '06e87857590c91280d25e02f05637cd2381002bd1425dff3e36ca860bbb26a29',\n+            42: '9498ab55b7c66c66b2d19f9dd8b668acf8e2facf44da0fb466f6986999bb8a56',\n+            3.141: 'd00f2e88a088626f5db3eadb6d9d40c74b4b4d3f9f07c1ca2f76b247fe39530b',\n+            complex(1, 2): '31800fbabb47c8fbf60c848571ee25e7dcbdfc5dfb60c1e8421c1c363a80ea6a',\n+            True: '31ad5fa163a0c478d966c7f7568f3248f0c58d294372b2e8f7cb0560d8c8b12f',\n+            None: '1729486cc7e56a6383542b1ec73125ccb26093651a5da05e04657ac416a74b8f',\n+        }\n+\n+        for val, digest in test_data.items():\n+            with self.subTest(val=val):\n+                self.assertEqual(make_hash(val), digest)\n \n     def test_unicode_string(self):\n         self.assertEqual(\n-            make_hash(u'something still in ASCII'), '753df9fb179504652f66dd15877d393a743cbfe31d6bf6a9faed7e37')\n-        # current implementation fails with real unicode:\n-        # self.assertEqual(make_hash(u'öpis mit Umluut wie ä, ö, ü und emene ß 😊'), '')\n-\n-    def test_collection_with_builtin_types(self):\n-        self.assertEqual(make_hash((1, 2, 3)), 'ccbd4c0c83df304a4d8fa1cb4d556f370d8d09c03b49cd069fd72598')\n-        self.assertEqual(make_hash([1, 2, 3]), 'ccbd4c0c83df304a4d8fa1cb4d556f370d8d09c03b49cd069fd72598')\n-        self.assertEqual(make_hash([3, 1, 2]), '401c29a918e635ab4b384e7a0ac1d189eb857bfc3e8085fe3aaa17c2')\n-        self.assertEqual(make_hash({1, 2, 3}), '95467151c8099d6bef0e52588f0e651d6276fa4cad0866c710447a58')\n-        self.assertEqual(make_hash({'a': 'b', 'c': 'd'}), 'ee137be5e9397e30612b6628df24be4e4913c6cc4a6be5bf85509ef3')\n-        self.assertEqual(make_hash({'c': 'd', 'a': 'b'}), 'ee137be5e9397e30612b6628df24be4e4913c6cc4a6be5bf85509ef3')\n-\n-    @unittest.skipIf(six.PY3, \"Broken on Python 3\")\n+            make_hash(u'something still in ASCII'), 'd55e492596cf214d877e165cdc3394f27e82e011838474f5ba5b9824074b9e91')\n+\n+        self.assertEqual(\n+            make_hash(u\"öpis mit Umluut wie ä, ö, ü und emene ß\"),\n+            'c404bf9a62cba3518de5c2bae8c67010aff6e4051cce565fa247a7f1d71f1fc7')\n+\n+    def test_collection_with_ordered_sets(self):\n+        self.assertEqual(make_hash((1, 2, 3)), '27e6598a3bd1c878ca09db22f4d93ebcb1a0e08db27e09c737e7f2e698dcce5b')\n+        self.assertEqual(make_hash([1, 2, 3]), '27e6598a3bd1c878ca09db22f4d93ebcb1a0e08db27e09c737e7f2e698dcce5b')\n+\n+        for perm in itertools.permutations([1, 2, 3]):\n+            with self.subTest(orig=[1, 2, 3], perm=perm):\n+                self.assertNotEqual(make_hash(perm), make_hash({1, 2, 3}))\n+\n+    def test_collection_with_unordered_sets(self):\n+        self.assertEqual(make_hash({1, 2, 3}), '2e096a4b81ab724c2250835fc2fef7d932a7a86deafe1fb584ff329adcc34e0f')\n+        self.assertEqual(make_hash({1, 2, 3}), make_hash({2, 1, 3}))\n+\n+    def test_collection_with_dicts(self):\n+        self.assertEqual(\n+            make_hash({\n+                'a': 'b',\n+                'c': 'd'\n+            }), '1890162a70dbbcbef2d0cc40b9bd90463459f2e7e72573628e7f1c003ca25c95')\n+\n+        # order changes in dictionaries should give the same hashes\n+        self.assertEqual(\n+            make_hash(collections.OrderedDict([('c', 'd'), ('a', 'b')])),\n+            make_hash(collections.OrderedDict([('a', 'b'), ('c', 'd')])))","path":"aiida/common/test_hashing.py","position":108,"original_position":108,"commit_id":"b6d0d0955ba2f64bda12e27a1fcab734d63fb353","original_commit_id":"b6d0d0955ba2f64bda12e27a1fcab734d63fb353","user":{"login":"giovannipizzi","id":16132028,"node_id":"MDQ6VXNlcjE2MTMyMDI4","avatar_url":"https://avatars0.githubusercontent.com/u/16132028?v=4","gravatar_id":"","url":"https://api.github.com/users/giovannipizzi","html_url":"https://github.com/giovannipizzi","followers_url":"https://api.github.com/users/giovannipizzi/followers","following_url":"https://api.github.com/users/giovannipizzi/following{/other_user}","gists_url":"https://api.github.com/users/giovannipizzi/gists{/gist_id}","starred_url":"https://api.github.com/users/giovannipizzi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/giovannipizzi/subscriptions","organizations_url":"https://api.github.com/users/giovannipizzi/orgs","repos_url":"https://api.github.com/users/giovannipizzi/repos","events_url":"https://api.github.com/users/giovannipizzi/events{/privacy}","received_events_url":"https://api.github.com/users/giovannipizzi/received_events","type":"User","site_admin":false},"body":"Suggestion: for make_hash, when an OrderedDict is passed, check for a kwarg (e.g. 'consider_as_unsorted' or a better name): if True, continue; if False, raise","created_at":"2018-10-25T09:29:46Z","updated_at":"2018-10-25T09:31:21Z","html_url":"https://github.com/aiidateam/aiida_core/pull/2110#discussion_r228099957","pull_request_url":"https://api.github.com/repos/aiidateam/aiida_core/pulls/2110","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/aiidateam/aiida_core/pulls/comments/228099957"},"html":{"href":"https://github.com/aiidateam/aiida_core/pull/2110#discussion_r228099957"},"pull_request":{"href":"https://api.github.com/repos/aiidateam/aiida_core/pulls/2110"}}},"pull_request":{"url":"https://api.github.com/repos/aiidateam/aiida_core/pulls/2110","id":225434918,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI1NDM0OTE4","html_url":"https://github.com/aiidateam/aiida_core/pull/2110","diff_url":"https://github.com/aiidateam/aiida_core/pull/2110.diff","patch_url":"https://github.com/aiidateam/aiida_core/pull/2110.patch","issue_url":"https://api.github.com/repos/aiidateam/aiida_core/issues/2110","number":2110,"state":"open","locked":false,"title":"Fix several issues with the hashing method","user":{"login":"dev-zero","id":11307,"node_id":"MDQ6VXNlcjExMzA3","avatar_url":"https://avatars2.githubusercontent.com/u/11307?v=4","gravatar_id":"","url":"https://api.github.com/users/dev-zero","html_url":"https://github.com/dev-zero","followers_url":"https://api.github.com/users/dev-zero/followers","following_url":"https://api.github.com/users/dev-zero/following{/other_user}","gists_url":"https://api.github.com/users/dev-zero/gists{/gist_id}","starred_url":"https://api.github.com/users/dev-zero/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dev-zero/subscriptions","organizations_url":"https://api.github.com/users/dev-zero/orgs","repos_url":"https://api.github.com/users/dev-zero/repos","events_url":"https://api.github.com/users/dev-zero/events{/privacy}","received_events_url":"https://api.github.com/users/dev-zero/received_events","type":"User","site_admin":false},"body":"This is an an alternative to #2049 using Blake2b as the hash algorithm (in tree configuration).\r\n\r\nBesides fixing the same issues, I discovered some other problems which slipped through the cracks:\r\n\r\n* the dispatch on `int` type works differently between Python 2 and 3: while a `np.int64` was matched by it in Python 2, Python 3 was using the string type instead, which is why we are using `numbers.Integral` now\r\n*  we can't distinguish in hash types between str, bytes and unicode. Otherwise a simple `\"...\"` will be a differerent hash type in Python 2 and 3\r\n* furthermore I also made everything byte-ordner agnostic by converting numerical types to little-endian if necessary\r\n* for some of the representations I used `struct.pack` with the little-endian standard for getting the byte representation instead of the string representation. Arbitrary length of integers are therefore currently not supported I guess.\r\n\r\nI guess it may make sense to squash @greschd 's commits with my main commit. So, instead of reviewing the diff, it is probably better to review the final code.","created_at":"2018-10-24T14:49:56Z","updated_at":"2018-10-25T09:31:21Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e2584b005fd310cf6cf72fdaed4e508d6b2a7e3e","assignee":null,"assignees":[],"requested_reviewers":[{"login":"greschd","id":5692808,"node_id":"MDQ6VXNlcjU2OTI4MDg=","avatar_url":"https://avatars2.githubusercontent.com/u/5692808?v=4","gravatar_id":"","url":"https://api.github.com/users/greschd","html_url":"https://github.com/greschd","followers_url":"https://api.github.com/users/greschd/followers","following_url":"https://api.github.com/users/greschd/following{/other_user}","gists_url":"https://api.github.com/users/greschd/gists{/gist_id}","starred_url":"https://api.github.com/users/greschd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/greschd/subscriptions","organizations_url":"https://api.github.com/users/greschd/orgs","repos_url":"https://api.github.com/users/greschd/repos","events_url":"https://api.github.com/users/greschd/events{/privacy}","received_events_url":"https://api.github.com/users/greschd/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/aiidateam/aiida_core/pulls/2110/commits","review_comments_url":"https://api.github.com/repos/aiidateam/aiida_core/pulls/2110/comments","review_comment_url":"https://api.github.com/repos/aiidateam/aiida_core/pulls/comments{/number}","comments_url":"https://api.github.com/repos/aiidateam/aiida_core/issues/2110/comments","statuses_url":"https://api.github.com/repos/aiidateam/aiida_core/statuses/b6d0d0955ba2f64bda12e27a1fcab734d63fb353","head":{"label":"dev-zero:fix_python3_hashing","ref":"fix_python3_hashing","sha":"b6d0d0955ba2f64bda12e27a1fcab734d63fb353","user":{"login":"dev-zero","id":11307,"node_id":"MDQ6VXNlcjExMzA3","avatar_url":"https://avatars2.githubusercontent.com/u/11307?v=4","gravatar_id":"","url":"https://api.github.com/users/dev-zero","html_url":"https://github.com/dev-zero","followers_url":"https://api.github.com/users/dev-zero/followers","following_url":"https://api.github.com/users/dev-zero/following{/other_user}","gists_url":"https://api.github.com/users/dev-zero/gists{/gist_id}","starred_url":"https://api.github.com/users/dev-zero/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dev-zero/subscriptions","organizations_url":"https://api.github.com/users/dev-zero/orgs","repos_url":"https://api.github.com/users/dev-zero/repos","events_url":"https://api.github.com/users/dev-zero/events{/privacy}","received_events_url":"https://api.github.com/users/dev-zero/received_events","type":"User","site_admin":false},"repo":{"id":107269471,"node_id":"MDEwOlJlcG9zaXRvcnkxMDcyNjk0NzE=","name":"aiida_core","full_name":"dev-zero/aiida_core","private":false,"owner":{"login":"dev-zero","id":11307,"node_id":"MDQ6VXNlcjExMzA3","avatar_url":"https://avatars2.githubusercontent.com/u/11307?v=4","gravatar_id":"","url":"https://api.github.com/users/dev-zero","html_url":"https://github.com/dev-zero","followers_url":"https://api.github.com/users/dev-zero/followers","following_url":"https://api.github.com/users/dev-zero/following{/other_user}","gists_url":"https://api.github.com/users/dev-zero/gists{/gist_id}","starred_url":"https://api.github.com/users/dev-zero/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dev-zero/subscriptions","organizations_url":"https://api.github.com/users/dev-zero/orgs","repos_url":"https://api.github.com/users/dev-zero/repos","events_url":"https://api.github.com/users/dev-zero/events{/privacy}","received_events_url":"https://api.github.com/users/dev-zero/received_events","type":"User","site_admin":false},"html_url":"https://github.com/dev-zero/aiida_core","description":"The official repository for the AiiDA code","fork":true,"url":"https://api.github.com/repos/dev-zero/aiida_core","forks_url":"https://api.github.com/repos/dev-zero/aiida_core/forks","keys_url":"https://api.github.com/repos/dev-zero/aiida_core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dev-zero/aiida_core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dev-zero/aiida_core/teams","hooks_url":"https://api.github.com/repos/dev-zero/aiida_core/hooks","issue_events_url":"https://api.github.com/repos/dev-zero/aiida_core/issues/events{/number}","events_url":"https://api.github.com/repos/dev-zero/aiida_core/events","assignees_url":"https://api.github.com/repos/dev-zero/aiida_core/assignees{/user}","branches_url":"https://api.github.com/repos/dev-zero/aiida_core/branches{/branch}","tags_url":"https://api.github.com/repos/dev-zero/aiida_core/tags","blobs_url":"https://api.github.com/repos/dev-zero/aiida_core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dev-zero/aiida_core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dev-zero/aiida_core/git/refs{/sha}","trees_url":"https://api.github.com/repos/dev-zero/aiida_core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dev-zero/aiida_core/statuses/{sha}","languages_url":"https://api.github.com/repos/dev-zero/aiida_core/languages","stargazers_url":"https://api.github.com/repos/dev-zero/aiida_core/stargazers","contributors_url":"https://api.github.com/repos/dev-zero/aiida_core/contributors","subscribers_url":"https://api.github.com/repos/dev-zero/aiida_core/subscribers","subscription_url":"https://api.github.com/repos/dev-zero/aiida_core/subscription","commits_url":"https://api.github.com/repos/dev-zero/aiida_core/commits{/sha}","git_commits_url":"https://api.github.com/repos/dev-zero/aiida_core/git/commits{/sha}","comments_url":"https://api.github.com/repos/dev-zero/aiida_core/comments{/number}","issue_comment_url":"https://api.github.com/repos/dev-zero/aiida_core/issues/comments{/number}","contents_url":"https://api.github.com/repos/dev-zero/aiida_core/contents/{+path}","compare_url":"https://api.github.com/repos/dev-zero/aiida_core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dev-zero/aiida_core/merges","archive_url":"https://api.github.com/repos/dev-zero/aiida_core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dev-zero/aiida_core/downloads","issues_url":"https://api.github.com/repos/dev-zero/aiida_core/issues{/number}","pulls_url":"https://api.github.com/repos/dev-zero/aiida_core/pulls{/number}","milestones_url":"https://api.github.com/repos/dev-zero/aiida_core/milestones{/number}","notifications_url":"https://api.github.com/repos/dev-zero/aiida_core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dev-zero/aiida_core/labels{/name}","releases_url":"https://api.github.com/repos/dev-zero/aiida_core/releases{/id}","deployments_url":"https://api.github.com/repos/dev-zero/aiida_core/deployments","created_at":"2017-10-17T13:04:12Z","updated_at":"2018-08-31T16:12:08Z","pushed_at":"2018-10-25T08:05:28Z","git_url":"git://github.com/dev-zero/aiida_core.git","ssh_url":"git@github.com:dev-zero/aiida_core.git","clone_url":"https://github.com/dev-zero/aiida_core.git","svn_url":"https://github.com/dev-zero/aiida_core","homepage":null,"size":46868,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"aiidateam:develop","ref":"develop","sha":"666bbca89f89afbd348eb6a14e0abc5fcc72b7ed","user":{"login":"aiidateam","id":22181836,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyMTgxODM2","avatar_url":"https://avatars3.githubusercontent.com/u/22181836?v=4","gravatar_id":"","url":"https://api.github.com/users/aiidateam","html_url":"https://github.com/aiidateam","followers_url":"https://api.github.com/users/aiidateam/followers","following_url":"https://api.github.com/users/aiidateam/following{/other_user}","gists_url":"https://api.github.com/users/aiidateam/gists{/gist_id}","starred_url":"https://api.github.com/users/aiidateam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aiidateam/subscriptions","organizations_url":"https://api.github.com/users/aiidateam/orgs","repos_url":"https://api.github.com/users/aiidateam/repos","events_url":"https://api.github.com/users/aiidateam/events{/privacy}","received_events_url":"https://api.github.com/users/aiidateam/received_events","type":"Organization","site_admin":false},"repo":{"id":77234579,"node_id":"MDEwOlJlcG9zaXRvcnk3NzIzNDU3OQ==","name":"aiida_core","full_name":"aiidateam/aiida_core","private":false,"owner":{"login":"aiidateam","id":22181836,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyMTgxODM2","avatar_url":"https://avatars3.githubusercontent.com/u/22181836?v=4","gravatar_id":"","url":"https://api.github.com/users/aiidateam","html_url":"https://github.com/aiidateam","followers_url":"https://api.github.com/users/aiidateam/followers","following_url":"https://api.github.com/users/aiidateam/following{/other_user}","gists_url":"https://api.github.com/users/aiidateam/gists{/gist_id}","starred_url":"https://api.github.com/users/aiidateam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aiidateam/subscriptions","organizations_url":"https://api.github.com/users/aiidateam/orgs","repos_url":"https://api.github.com/users/aiidateam/repos","events_url":"https://api.github.com/users/aiidateam/events{/privacy}","received_events_url":"https://api.github.com/users/aiidateam/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/aiidateam/aiida_core","description":"The official repository for the AiiDA code","fork":false,"url":"https://api.github.com/repos/aiidateam/aiida_core","forks_url":"https://api.github.com/repos/aiidateam/aiida_core/forks","keys_url":"https://api.github.com/repos/aiidateam/aiida_core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aiidateam/aiida_core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aiidateam/aiida_core/teams","hooks_url":"https://api.github.com/repos/aiidateam/aiida_core/hooks","issue_events_url":"https://api.github.com/repos/aiidateam/aiida_core/issues/events{/number}","events_url":"https://api.github.com/repos/aiidateam/aiida_core/events","assignees_url":"https://api.github.com/repos/aiidateam/aiida_core/assignees{/user}","branches_url":"https://api.github.com/repos/aiidateam/aiida_core/branches{/branch}","tags_url":"https://api.github.com/repos/aiidateam/aiida_core/tags","blobs_url":"https://api.github.com/repos/aiidateam/aiida_core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aiidateam/aiida_core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aiidateam/aiida_core/git/refs{/sha}","trees_url":"https://api.github.com/repos/aiidateam/aiida_core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aiidateam/aiida_core/statuses/{sha}","languages_url":"https://api.github.com/repos/aiidateam/aiida_core/languages","stargazers_url":"https://api.github.com/repos/aiidateam/aiida_core/stargazers","contributors_url":"https://api.github.com/repos/aiidateam/aiida_core/contributors","subscribers_url":"https://api.github.com/repos/aiidateam/aiida_core/subscribers","subscription_url":"https://api.github.com/repos/aiidateam/aiida_core/subscription","commits_url":"https://api.github.com/repos/aiidateam/aiida_core/commits{/sha}","git_commits_url":"https://api.github.com/repos/aiidateam/aiida_core/git/commits{/sha}","comments_url":"https://api.github.com/repos/aiidateam/aiida_core/comments{/number}","issue_comment_url":"https://api.github.com/repos/aiidateam/aiida_core/issues/comments{/number}","contents_url":"https://api.github.com/repos/aiidateam/aiida_core/contents/{+path}","compare_url":"https://api.github.com/repos/aiidateam/aiida_core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aiidateam/aiida_core/merges","archive_url":"https://api.github.com/repos/aiidateam/aiida_core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aiidateam/aiida_core/downloads","issues_url":"https://api.github.com/repos/aiidateam/aiida_core/issues{/number}","pulls_url":"https://api.github.com/repos/aiidateam/aiida_core/pulls{/number}","milestones_url":"https://api.github.com/repos/aiidateam/aiida_core/milestones{/number}","notifications_url":"https://api.github.com/repos/aiidateam/aiida_core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aiidateam/aiida_core/labels{/name}","releases_url":"https://api.github.com/repos/aiidateam/aiida_core/releases{/id}","deployments_url":"https://api.github.com/repos/aiidateam/aiida_core/deployments","created_at":"2016-12-23T15:38:21Z","updated_at":"2018-10-25T05:51:26Z","pushed_at":"2018-10-25T09:31:00Z","git_url":"git://github.com/aiidateam/aiida_core.git","ssh_url":"git@github.com:aiidateam/aiida_core.git","clone_url":"https://github.com/aiidateam/aiida_core.git","svn_url":"https://github.com/aiidateam/aiida_core","homepage":null,"size":47502,"stargazers_count":128,"watchers_count":128,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":58,"mirror_url":null,"archived":false,"open_issues_count":249,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":58,"open_issues":249,"watchers":128,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/aiidateam/aiida_core/pulls/2110"},"html":{"href":"https://github.com/aiidateam/aiida_core/pull/2110"},"issue":{"href":"https://api.github.com/repos/aiidateam/aiida_core/issues/2110"},"comments":{"href":"https://api.github.com/repos/aiidateam/aiida_core/issues/2110/comments"},"review_comments":{"href":"https://api.github.com/repos/aiidateam/aiida_core/pulls/2110/comments"},"review_comment":{"href":"https://api.github.com/repos/aiidateam/aiida_core/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/aiidateam/aiida_core/pulls/2110/commits"},"statuses":{"href":"https://api.github.com/repos/aiidateam/aiida_core/statuses/b6d0d0955ba2f64bda12e27a1fcab734d63fb353"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"giovannipizzi"}}