{"action":"created","comment":{"url":"https://api.github.com/repos/oppia/oppia/pulls/comments/89979600","pull_request_review_id":10504754,"id":89979600,"diff_hunk":"@@ -551,14 +942,46 @@ def get_email_preferences(user_id):\n \n \n class UserContributions(object):\n-    \"\"\"Value object representing a user's contributions.\"\"\"\n+    \"\"\"Value object representing a user's contributions.\n+\n+    Attributes:\n+        user_id: str. The user id.\n+        created_exploration_ids: list. IDs of explorations that this\n+            user has created.\n+        edited_exploration_ids: list. IDs of explorations that this\n+        \tuser has edited.\n+    \"\"\"\n+\n     def __init__(\n             self, user_id, created_exploration_ids, edited_exploration_ids):\n+        \"\"\"Constructs a UserContributions domain object.\n+\n+        Args:\n+            user_id: str. The user id.\n+            created_exploration_ids: list. IDs of explorations that this\n+                user has created.\n+            edited_exploration_ids: list. IDs of explorations that this\n+                user has edited.\n+        \"\"\"\n         self.user_id = user_id\n         self.created_exploration_ids = created_exploration_ids\n         self.edited_exploration_ids = edited_exploration_ids\n \n     def validate(self):\n+        \"\"\"Checks that user_id, created_exploration_ids and\n+        edited_exploration_ids fields of this UserContributions\n+        domain object are valid.\n+\n+        Raises:\n+            ValidationError: If user_id is not str.","path":"core/domain/user_services.py","position":null,"original_position":775,"commit_id":"c227e1b144499a362d4f613502bdf186cd69c9dd","original_commit_id":"923b2f87ff87fd4c606d236bfc4d7adab060682b","user":{"login":"Nalinc","id":4050813,"avatar_url":"https://avatars.githubusercontent.com/u/4050813?v=3","gravatar_id":"","url":"https://api.github.com/users/Nalinc","html_url":"https://github.com/Nalinc","followers_url":"https://api.github.com/users/Nalinc/followers","following_url":"https://api.github.com/users/Nalinc/following{/other_user}","gists_url":"https://api.github.com/users/Nalinc/gists{/gist_id}","starred_url":"https://api.github.com/users/Nalinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Nalinc/subscriptions","organizations_url":"https://api.github.com/users/Nalinc/orgs","repos_url":"https://api.github.com/users/Nalinc/repos","events_url":"https://api.github.com/users/Nalinc/events{/privacy}","received_events_url":"https://api.github.com/users/Nalinc/received_events","type":"User","site_admin":false},"body":"Done\r\n","created_at":"2016-11-29T10:21:10Z","updated_at":"2016-11-29T10:21:10Z","html_url":"https://github.com/oppia/oppia/pull/2622#discussion_r89979600","pull_request_url":"https://api.github.com/repos/oppia/oppia/pulls/2622","_links":{"self":{"href":"https://api.github.com/repos/oppia/oppia/pulls/comments/89979600"},"html":{"href":"https://github.com/oppia/oppia/pull/2622#discussion_r89979600"},"pull_request":{"href":"https://api.github.com/repos/oppia/oppia/pulls/2622"}}},"pull_request":{"url":"https://api.github.com/repos/oppia/oppia/pulls/2622","id":89991639,"html_url":"https://github.com/oppia/oppia/pull/2622","diff_url":"https://github.com/oppia/oppia/pull/2622.diff","patch_url":"https://github.com/oppia/oppia/pull/2622.patch","issue_url":"https://api.github.com/repos/oppia/oppia/issues/2622","number":2622,"state":"open","locked":false,"title":"Fix #2394: Update docstrings to follow the style guide in user_services.py","user":{"login":"Nalinc","id":4050813,"avatar_url":"https://avatars.githubusercontent.com/u/4050813?v=3","gravatar_id":"","url":"https://api.github.com/users/Nalinc","html_url":"https://github.com/Nalinc","followers_url":"https://api.github.com/users/Nalinc/followers","following_url":"https://api.github.com/users/Nalinc/following{/other_user}","gists_url":"https://api.github.com/users/Nalinc/gists{/gist_id}","starred_url":"https://api.github.com/users/Nalinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Nalinc/subscriptions","organizations_url":"https://api.github.com/users/Nalinc/orgs","repos_url":"https://api.github.com/users/Nalinc/repos","events_url":"https://api.github.com/users/Nalinc/events{/privacy}","received_events_url":"https://api.github.com/users/Nalinc/received_events","type":"User","site_admin":false},"body":"Improve docstrings in Python backend code to follow [Google Python style guide](https://google.github.io/styleguide/pyguide.html?showone=Comments#Comments).\n\nThis PR covers the following file(s)\n- [ ] core.domain.user_services @Nalinc\n","created_at":"2016-10-19T11:38:17Z","updated_at":"2016-11-29T10:21:10Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ccc6f1cf7d1d96507cbba9e9916c296a97d6050b","assignee":{"login":"seanlip","id":10575562,"avatar_url":"https://avatars.githubusercontent.com/u/10575562?v=3","gravatar_id":"","url":"https://api.github.com/users/seanlip","html_url":"https://github.com/seanlip","followers_url":"https://api.github.com/users/seanlip/followers","following_url":"https://api.github.com/users/seanlip/following{/other_user}","gists_url":"https://api.github.com/users/seanlip/gists{/gist_id}","starred_url":"https://api.github.com/users/seanlip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seanlip/subscriptions","organizations_url":"https://api.github.com/users/seanlip/orgs","repos_url":"https://api.github.com/users/seanlip/repos","events_url":"https://api.github.com/users/seanlip/events{/privacy}","received_events_url":"https://api.github.com/users/seanlip/received_events","type":"User","site_admin":false},"assignees":[{"login":"seanlip","id":10575562,"avatar_url":"https://avatars.githubusercontent.com/u/10575562?v=3","gravatar_id":"","url":"https://api.github.com/users/seanlip","html_url":"https://github.com/seanlip","followers_url":"https://api.github.com/users/seanlip/followers","following_url":"https://api.github.com/users/seanlip/following{/other_user}","gists_url":"https://api.github.com/users/seanlip/gists{/gist_id}","starred_url":"https://api.github.com/users/seanlip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seanlip/subscriptions","organizations_url":"https://api.github.com/users/seanlip/orgs","repos_url":"https://api.github.com/users/seanlip/repos","events_url":"https://api.github.com/users/seanlip/events{/privacy}","received_events_url":"https://api.github.com/users/seanlip/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/oppia/oppia/pulls/2622/commits","review_comments_url":"https://api.github.com/repos/oppia/oppia/pulls/2622/comments","review_comment_url":"https://api.github.com/repos/oppia/oppia/pulls/comments{/number}","comments_url":"https://api.github.com/repos/oppia/oppia/issues/2622/comments","statuses_url":"https://api.github.com/repos/oppia/oppia/statuses/c227e1b144499a362d4f613502bdf186cd69c9dd","head":{"label":"Nalinc:develop","ref":"develop","sha":"c227e1b144499a362d4f613502bdf186cd69c9dd","user":{"login":"Nalinc","id":4050813,"avatar_url":"https://avatars.githubusercontent.com/u/4050813?v=3","gravatar_id":"","url":"https://api.github.com/users/Nalinc","html_url":"https://github.com/Nalinc","followers_url":"https://api.github.com/users/Nalinc/followers","following_url":"https://api.github.com/users/Nalinc/following{/other_user}","gists_url":"https://api.github.com/users/Nalinc/gists{/gist_id}","starred_url":"https://api.github.com/users/Nalinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Nalinc/subscriptions","organizations_url":"https://api.github.com/users/Nalinc/orgs","repos_url":"https://api.github.com/users/Nalinc/repos","events_url":"https://api.github.com/users/Nalinc/events{/privacy}","received_events_url":"https://api.github.com/users/Nalinc/received_events","type":"User","site_admin":false},"repo":{"id":68677972,"name":"oppia","full_name":"Nalinc/oppia","owner":{"login":"Nalinc","id":4050813,"avatar_url":"https://avatars.githubusercontent.com/u/4050813?v=3","gravatar_id":"","url":"https://api.github.com/users/Nalinc","html_url":"https://github.com/Nalinc","followers_url":"https://api.github.com/users/Nalinc/followers","following_url":"https://api.github.com/users/Nalinc/following{/other_user}","gists_url":"https://api.github.com/users/Nalinc/gists{/gist_id}","starred_url":"https://api.github.com/users/Nalinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Nalinc/subscriptions","organizations_url":"https://api.github.com/users/Nalinc/orgs","repos_url":"https://api.github.com/users/Nalinc/repos","events_url":"https://api.github.com/users/Nalinc/events{/privacy}","received_events_url":"https://api.github.com/users/Nalinc/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Nalinc/oppia","description":"Tool for collaboratively building interactive lessons.","fork":true,"url":"https://api.github.com/repos/Nalinc/oppia","forks_url":"https://api.github.com/repos/Nalinc/oppia/forks","keys_url":"https://api.github.com/repos/Nalinc/oppia/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Nalinc/oppia/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Nalinc/oppia/teams","hooks_url":"https://api.github.com/repos/Nalinc/oppia/hooks","issue_events_url":"https://api.github.com/repos/Nalinc/oppia/issues/events{/number}","events_url":"https://api.github.com/repos/Nalinc/oppia/events","assignees_url":"https://api.github.com/repos/Nalinc/oppia/assignees{/user}","branches_url":"https://api.github.com/repos/Nalinc/oppia/branches{/branch}","tags_url":"https://api.github.com/repos/Nalinc/oppia/tags","blobs_url":"https://api.github.com/repos/Nalinc/oppia/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Nalinc/oppia/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Nalinc/oppia/git/refs{/sha}","trees_url":"https://api.github.com/repos/Nalinc/oppia/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Nalinc/oppia/statuses/{sha}","languages_url":"https://api.github.com/repos/Nalinc/oppia/languages","stargazers_url":"https://api.github.com/repos/Nalinc/oppia/stargazers","contributors_url":"https://api.github.com/repos/Nalinc/oppia/contributors","subscribers_url":"https://api.github.com/repos/Nalinc/oppia/subscribers","subscription_url":"https://api.github.com/repos/Nalinc/oppia/subscription","commits_url":"https://api.github.com/repos/Nalinc/oppia/commits{/sha}","git_commits_url":"https://api.github.com/repos/Nalinc/oppia/git/commits{/sha}","comments_url":"https://api.github.com/repos/Nalinc/oppia/comments{/number}","issue_comment_url":"https://api.github.com/repos/Nalinc/oppia/issues/comments{/number}","contents_url":"https://api.github.com/repos/Nalinc/oppia/contents/{+path}","compare_url":"https://api.github.com/repos/Nalinc/oppia/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Nalinc/oppia/merges","archive_url":"https://api.github.com/repos/Nalinc/oppia/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Nalinc/oppia/downloads","issues_url":"https://api.github.com/repos/Nalinc/oppia/issues{/number}","pulls_url":"https://api.github.com/repos/Nalinc/oppia/pulls{/number}","milestones_url":"https://api.github.com/repos/Nalinc/oppia/milestones{/number}","notifications_url":"https://api.github.com/repos/Nalinc/oppia/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Nalinc/oppia/labels{/name}","releases_url":"https://api.github.com/repos/Nalinc/oppia/releases{/id}","deployments_url":"https://api.github.com/repos/Nalinc/oppia/deployments","created_at":"2016-09-20T05:40:35Z","updated_at":"2016-09-20T05:40:39Z","pushed_at":"2016-11-29T08:32:56Z","git_url":"git://github.com/Nalinc/oppia.git","ssh_url":"git@github.com:Nalinc/oppia.git","clone_url":"https://github.com/Nalinc/oppia.git","svn_url":"https://github.com/Nalinc/oppia","homepage":"https://www.oppia.org","size":47992,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":false,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"oppia:develop","ref":"develop","sha":"e6b71391639cb0f895654077b75158223c43c12a","user":{"login":"oppia","id":11620230,"avatar_url":"https://avatars.githubusercontent.com/u/11620230?v=3","gravatar_id":"","url":"https://api.github.com/users/oppia","html_url":"https://github.com/oppia","followers_url":"https://api.github.com/users/oppia/followers","following_url":"https://api.github.com/users/oppia/following{/other_user}","gists_url":"https://api.github.com/users/oppia/gists{/gist_id}","starred_url":"https://api.github.com/users/oppia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oppia/subscriptions","organizations_url":"https://api.github.com/users/oppia/orgs","repos_url":"https://api.github.com/users/oppia/repos","events_url":"https://api.github.com/users/oppia/events{/privacy}","received_events_url":"https://api.github.com/users/oppia/received_events","type":"Organization","site_admin":false},"repo":{"id":40687563,"name":"oppia","full_name":"oppia/oppia","owner":{"login":"oppia","id":11620230,"avatar_url":"https://avatars.githubusercontent.com/u/11620230?v=3","gravatar_id":"","url":"https://api.github.com/users/oppia","html_url":"https://github.com/oppia","followers_url":"https://api.github.com/users/oppia/followers","following_url":"https://api.github.com/users/oppia/following{/other_user}","gists_url":"https://api.github.com/users/oppia/gists{/gist_id}","starred_url":"https://api.github.com/users/oppia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oppia/subscriptions","organizations_url":"https://api.github.com/users/oppia/orgs","repos_url":"https://api.github.com/users/oppia/repos","events_url":"https://api.github.com/users/oppia/events{/privacy}","received_events_url":"https://api.github.com/users/oppia/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/oppia/oppia","description":"Tool for collaboratively building interactive lessons.","fork":false,"url":"https://api.github.com/repos/oppia/oppia","forks_url":"https://api.github.com/repos/oppia/oppia/forks","keys_url":"https://api.github.com/repos/oppia/oppia/keys{/key_id}","collaborators_url":"https://api.github.com/repos/oppia/oppia/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/oppia/oppia/teams","hooks_url":"https://api.github.com/repos/oppia/oppia/hooks","issue_events_url":"https://api.github.com/repos/oppia/oppia/issues/events{/number}","events_url":"https://api.github.com/repos/oppia/oppia/events","assignees_url":"https://api.github.com/repos/oppia/oppia/assignees{/user}","branches_url":"https://api.github.com/repos/oppia/oppia/branches{/branch}","tags_url":"https://api.github.com/repos/oppia/oppia/tags","blobs_url":"https://api.github.com/repos/oppia/oppia/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/oppia/oppia/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/oppia/oppia/git/refs{/sha}","trees_url":"https://api.github.com/repos/oppia/oppia/git/trees{/sha}","statuses_url":"https://api.github.com/repos/oppia/oppia/statuses/{sha}","languages_url":"https://api.github.com/repos/oppia/oppia/languages","stargazers_url":"https://api.github.com/repos/oppia/oppia/stargazers","contributors_url":"https://api.github.com/repos/oppia/oppia/contributors","subscribers_url":"https://api.github.com/repos/oppia/oppia/subscribers","subscription_url":"https://api.github.com/repos/oppia/oppia/subscription","commits_url":"https://api.github.com/repos/oppia/oppia/commits{/sha}","git_commits_url":"https://api.github.com/repos/oppia/oppia/git/commits{/sha}","comments_url":"https://api.github.com/repos/oppia/oppia/comments{/number}","issue_comment_url":"https://api.github.com/repos/oppia/oppia/issues/comments{/number}","contents_url":"https://api.github.com/repos/oppia/oppia/contents/{+path}","compare_url":"https://api.github.com/repos/oppia/oppia/compare/{base}...{head}","merges_url":"https://api.github.com/repos/oppia/oppia/merges","archive_url":"https://api.github.com/repos/oppia/oppia/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/oppia/oppia/downloads","issues_url":"https://api.github.com/repos/oppia/oppia/issues{/number}","pulls_url":"https://api.github.com/repos/oppia/oppia/pulls{/number}","milestones_url":"https://api.github.com/repos/oppia/oppia/milestones{/number}","notifications_url":"https://api.github.com/repos/oppia/oppia/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/oppia/oppia/labels{/name}","releases_url":"https://api.github.com/repos/oppia/oppia/releases{/id}","deployments_url":"https://api.github.com/repos/oppia/oppia/deployments","created_at":"2015-08-14T00:16:14Z","updated_at":"2016-11-29T05:00:33Z","pushed_at":"2016-11-29T09:18:10Z","git_url":"git://github.com/oppia/oppia.git","ssh_url":"git@github.com:oppia/oppia.git","clone_url":"https://github.com/oppia/oppia.git","svn_url":"https://github.com/oppia/oppia","homepage":"https://www.oppia.org","size":91426,"stargazers_count":198,"watchers_count":198,"language":"Python","has_issues":true,"has_downloads":false,"has_wiki":true,"has_pages":false,"forks_count":295,"mirror_url":null,"open_issues_count":353,"forks":295,"open_issues":353,"watchers":198,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/oppia/oppia/pulls/2622"},"html":{"href":"https://github.com/oppia/oppia/pull/2622"},"issue":{"href":"https://api.github.com/repos/oppia/oppia/issues/2622"},"comments":{"href":"https://api.github.com/repos/oppia/oppia/issues/2622/comments"},"review_comments":{"href":"https://api.github.com/repos/oppia/oppia/pulls/2622/comments"},"review_comment":{"href":"https://api.github.com/repos/oppia/oppia/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/oppia/oppia/pulls/2622/commits"},"statuses":{"href":"https://api.github.com/repos/oppia/oppia/statuses/c227e1b144499a362d4f613502bdf186cd69c9dd"}}}}
{"actor":{"display_login":"Nalinc"}}