Repository: oppia/oppia

Issue:
Update docstrings in the python backend code.
The aim of this issue is to ensure that every backend file is properly documented. The docstrings serve as guidance to developers to help them understand what a class or a method is doing, so they must be written accurately.

Some useful tips:

- Please follow our [style guide](https://github.com/oppia/oppia/wiki/Coding-style-guide#general) and also the [Google Python style guide](https://google.github.io/styleguide/pyguide.html?showone=Comments#Comments) when writing the docstrings. Make sure to follow the patterns established there as closely as possible, including spacing, capitalization and punctuation.

- Make sure that the docstrings for every function include Args, Returns, Raises etc. as and when applicable. If there are no args, then you can omit writing Args. Likewise for Returns, Raises etc. as well.

- If a docstring is not present in the code, or the existing one is too vague for you to understand what's going on just by looking at it, then it should be rewritten to be more clear. You'll often need to read the code as well, and do a grep to find out specific method used in several files and in many other situations.

- Every argument name under Args and under Returns or Raises should have a data type mentioned along with it. Make separate efforts to analyze their data types as this might be a bit tricky sometimes and there are many chances of getting mistaken. You can, for example, try to run the method/function while temporarily adding `raise(type(X))` or `logging.info(type(X))` to get the information you need.

- Leave one line before each of Args, Returns and Raises. Indent any continuation lines by 4 spaces. See existing docstrings for examples.

- If you feel that some files are absent from the list or some parts of the codebase are unclear or incorrectly factored, please feel free to bring this up!

**Running tests on a specific file**
- Go to the directory where the file is present (say-- if the file is in core directory, perform `cd core` to reach to the directory).
- Execute `pylint --disable=all --enable=missing-docstring <filename>` to perform linter checks on the file.
(**Note:** If you face any problem while running the above command, please comment out [this line](https://github.com/oppia/oppia/blob/develop/.pylintrc#L11) in .pylintrc locally and uncomment it when pushing your changes).
- Add docstrings for the lines where you find 'Missing docstrings'.

Here is the list of files that are required to be updated.
**Note:** Once this issue is complete, we will turn on missing-docstring checks in Oppia's Python linter. Also, take care that some of the test methods/classes have to be excluded from the test files as they don't require docstrings in detail.

Docstrings for test methods (`test_*` type) and test classes (`*Tests` type) don't need docstrings and hence, can be excluded while adding docstrings to the test files. Please add `no-docstring-rgx=test_[a-z_]*|[a-zA-Z]*Tests|Test[a-zA-Z]*` regex in `.pylintrc` file under `[Basic]` section.

**Needs to be done (based on code snapshot at 1 Dec 2018):**
- [x] core.jobs_test @vibhor98 
C:497, 4: Missing method docstring (missing-docstring)
C:791, 8: Missing function docstring (missing-docstring)
- [x] core.jobs @YashJipkate 
C:103, 4: Missing method docstring (missing-docstring)
C:122, 8: Missing function docstring (missing-docstring)
C:486, 4: Missing method docstring (missing-docstring)
C:490, 4: Missing method docstring (missing-docstring)
C:494, 4: Missing method docstring (missing-docstring)
C:498, 4: Missing method docstring (missing-docstring)
C:502, 4: Missing method docstring (missing-docstring)
C:506, 4: Missing method docstring (missing-docstring)
C:510, 4: Missing method docstring (missing-docstring)
C:514, 4: Missing method docstring (missing-docstring)
C:1239, 8: Missing function docstring (missing-docstring)
C:1291, 8: Missing function docstring (missing-docstring)
C:1471, 8: Missing function docstring (missing-docstring)
- [x] core.controllers.skill_editor_test @vibhor98 
C: 52, 4: Missing method docstring (missing-docstring)
C: 60, 4: Missing method docstring (missing-docstring)
C: 66, 4: Missing method docstring (missing-docstring)
C: 71, 4: Missing method docstring (missing-docstring)
C: 74, 4: Missing method docstring (missing-docstring)
- [x] core.controllers.creator_dashboard_test @vibhor98 
C:124, 4: Missing method docstring (missing-docstring)
- [x] core.controllers.editor_test @vibhor98 
C:183, 8: Missing function docstring (missing-docstring)
C:195, 8: Missing function docstring (missing-docstring)
C:1776, 4: Missing method docstring (missing-docstring)
C:1784, 4: Missing method docstring (missing-docstring)
- [x] core.controllers.reader_test @vibhor98 
C:492, 4: Missing method docstring (missing-docstring)
C:495, 4: Missing method docstring (missing-docstring)
C:525, 4: Missing method docstring (missing-docstring)
C:528, 4: Missing method docstring (missing-docstring)
C:532, 4: Missing method docstring (missing-docstring)
- [x] core.controllers.resources_test @vibhor98 
C: 31, 4: Missing method docstring (missing-docstring)
- [x] core.controllers.topics_and_skills_dashboard_test @vibhor98 
C: 50, 4: Missing method docstring (missing-docstring)
- [x] core.controllers.creator_dashboard @vibhor98 
C:168, 8: Missing function docstring (missing-docstring)
C:174, 8: Missing function docstring (missing-docstring)
- [x] core.controllers.base_test @vibhor98 
C:352, 0: Missing class docstring (missing-docstring)
C:354, 4: Missing method docstring (missing-docstring)
C:360, 4: Missing method docstring (missing-docstring)
C:529, 4: Missing class docstring (missing-docstring)
- [x] core.controllers.admin @vibhor98 
C:198, 4: Missing method docstring (missing-docstring)
C:209, 4: Missing method docstring (missing-docstring)
- [x] core.controllers.feedback_test @vibhor98 
C:396, 4: Missing method docstring (missing-docstring)
C:405, 4: Missing method docstring (missing-docstring)
- [x] core.platform.users.gae_current_user_services @vibhor98 
C: 70, 4: Missing class docstring (missing-docstring)
- [x] core.platform.search.gae_search_services @vibhor98 
C:100, 0: Missing function docstring (missing-docstring)
C:120, 0: Missing function docstring (missing-docstring)
C:307, 0: Missing function docstring (missing-docstring)
C:340, 0: Missing function docstring (missing-docstring)
- [x] core.storage.base_model.gae_models_test @YashJipkate 
C:124, 0: Missing class docstring (missing-docstring)
C:128, 0: Missing class docstring (missing-docstring)
C:138, 0: Missing class docstring (missing-docstring)
- [x] core.storage.base_model.gae_models @YashJipkate 
C:423, 4: Missing method docstring (missing-docstring)
C:431, 4: Missing method docstring (missing-docstring)
- [x] core.storage.user.gae_models @YashJipkate 
C:178, 4: Missing method docstring (missing-docstring)
C:408, 4: Missing method docstring (missing-docstring)
C:488, 4: Missing method docstring (missing-docstring)
- [x] core.tests.test_utils @YashJipkate 
C:558, 4: Missing method docstring (missing-docstring)
- [x] core.tests.performance_tests.base @YashJipkate 
C: 47, 4: Missing method docstring (missing-docstring)
C: 52, 4: Missing method docstring (missing-docstring)
C: 55, 4: Missing method docstring (missing-docstring)
C: 58, 4: Missing method docstring (missing-docstring)
C: 63, 4: Missing method docstring (missing-docstring)
C: 68, 4: Missing method docstring (missing-docstring)
C: 80, 4: Missing method docstring (missing-docstring)
C: 92, 4: Missing method docstring (missing-docstring)
C:114, 4: Missing method docstring (missing-docstring)
C:121, 4: Missing method docstring (missing-docstring)
C:128, 4: Missing method docstring (missing-docstring)
C:135, 4: Missing method docstring (missing-docstring)
- [x] core.tests.performance_framework.perf_services @YashJipkate 
C:208, 4: Missing method docstring (missing-docstring)
C:213, 4: Missing method docstring (missing-docstring)
C:273, 4: Missing method docstring (missing-docstring)
C:278, 4: Missing method docstring (missing-docstring)
C:281, 4: Missing method docstring (missing-docstring)
C:296, 4: Missing method docstring (missing-docstring)
C:308, 4: Missing method docstring (missing-docstring)
C:319, 4: Missing method docstring (missing-docstring)
C:328, 4: Missing method docstring (missing-docstring)
C:336, 4: Missing method docstring (missing-docstring)
C:345, 4: Missing method docstring (missing-docstring)
C:357, 4: Missing method docstring (missing-docstring)
C:360, 4: Missing method docstring (missing-docstring)
C:364, 4: Missing method docstring (missing-docstring)
C:368, 4: Missing method docstring (missing-docstring)
C:372, 4: Missing method docstring (missing-docstring)
- [x] core.tests.performance_framework.perf_domain @YashJipkate 
C:175, 4: Missing method docstring (missing-docstring)
C:274, 4: Missing method docstring (missing-docstring)
- [x] core.domain.summary_services @YashJipkate 
C:495, 4: Missing function docstring (missing-docstring)
- [x] core.domain.email_jobs_one_off_test @YashJipkate 
C: 46, 8: Missing function docstring (missing-docstring)
- [x] core.domain.visualization_registry @YashJipkate 
C: 34, 4: Missing method docstring (missing-docstring)
- [x] core.domain.feedback_jobs_continuous @vddesai1871 
C: 91, 8: Missing function docstring (missing-docstring)
C:105, 8: Missing function docstring (missing-docstring)
C:119, 8: Missing function docstring (missing-docstring)
- [x] core.domain.rte_component_registry_test @vibhor98 
C: 59, 4: Missing method docstring (missing-docstring)
- [x] core.domain.exp_services_test @dev-ritik 
C: 50, 0: Missing function docstring (missing-docstring)
C:197, 4: Missing method docstring (missing-docstring)
C:2463, 8: Missing function docstring (missing-docstring)
C:2689, 4: Missing method docstring (missing-docstring)
- [x] core.domain.interaction_registry @vibhor98 
C: 41, 4: Missing method docstring (missing-docstring)
- [x] core.domain.user_jobs_continuous_test @vibhor98 
C: 92, 4: Missing method docstring (missing-docstring)
C:106, 4: Missing method docstring (missing-docstring)
C:111, 4: Missing method docstring (missing-docstring)
C:118, 4: Missing method docstring (missing-docstring)
C:662, 4: Missing method docstring (missing-docstring)
C:687, 4: Missing method docstring (missing-docstring)
C:695, 4: Missing method docstring (missing-docstring)
- [x] core.domain.calculation_registry @vibhor98 
C: 31, 4: Missing method docstring (missing-docstring)
- [x] core.domain.classifier_services_test @vibhor98 
C: 47, 4: Missing method docstring (missing-docstring)
- [x] core.domain.exp_domain_test @vibhor98 
C:4258, 8: Missing function docstring (missing-docstring)
- [x] core.domain.activity_services_test @vibhor98 
C: 36, 4: Missing method docstring (missing-docstring)
C: 40, 4: Missing method docstring (missing-docstring)
C: 44, 4: Missing method docstring (missing-docstring)
- [x] core.domain.feedback_services_test @vibhor98 
C:133, 4: Missing method docstring (missing-docstring)
C:142, 4: Missing method docstring (missing-docstring)
C:236, 8: Missing function docstring (missing-docstring)
- [x] core.domain.stats_domain_test @vibhor98 
C: 29, 4: Missing method docstring (missing-docstring)
- [x] core.domain.story_services @vibhor98 
C:655, 4: Missing function docstring (missing-docstring)
- [x] core.domain.collection_services_test @vibhor98 
C: 41, 0: Missing function docstring (missing-docstring)
C:134, 4: Missing method docstring (missing-docstring)
C:137, 4: Missing method docstring (missing-docstring)
C:336, 4: Missing method docstring (missing-docstring)
C:1344, 8: Missing function docstring (missing-docstring)
C:1510, 4: Missing method docstring (missing-docstring)
- [x] core.domain.user_jobs_one_off_test @vibhor98 
C:739, 4: Missing method docstring (missing-docstring)
C:742, 4: Missing method docstring (missing-docstring)
- [x] core.domain.subscription_services_test @vibhor98 
C: 63, 4: Missing method docstring (missing-docstring)
C: 70, 4: Missing method docstring (missing-docstring)
C: 77, 4: Missing method docstring (missing-docstring)
C:363, 4: Missing method docstring (missing-docstring)
C:370, 4: Missing method docstring (missing-docstring)
- [x] core.domain.obj_services @vibhor98 
C: 33, 4: Missing method docstring (missing-docstring)
- [x] core.domain.stats_jobs_continuous_test @vibhor98 
C: 68, 4: Missing method docstring (missing-docstring)
C: 73, 4: Missing method docstring (missing-docstring)
- [x] core.domain.user_jobs_continuous @vibhor98 
C:389, 8: Missing function docstring (missing-docstring)
C:415, 8: Missing function docstring (missing-docstring)
- [x] core.domain.feedback_jobs_continuous_test @vibhor98 
C: 60, 4: Missing method docstring (missing-docstring)
C: 65, 4: Missing method docstring (missing-docstring)
C: 73, 4: Missing method docstring (missing-docstring)
C:438, 4: Missing method docstring (missing-docstring)
C:443, 4: Missing method docstring (missing-docstring)
- [x] core.domain.email_manager_test @vibhor98 
C:537, 8: Missing function docstring (missing-docstring)
C:584, 8: Missing function docstring (missing-docstring)
C:629, 8: Missing function docstring (missing-docstring)
C:845, 8: Missing function docstring (missing-docstring)
C:865, 8: Missing function docstring (missing-docstring)
C:916, 8: Missing function docstring (missing-docstring)
- [x] core.domain.story_services_test @vibhor98 
C:426, 4: Missing method docstring (missing-docstring)
C:430, 4: Missing method docstring (missing-docstring)
- [x] core.domain.stats_services_test @vibhor98 
C:1571, 4: Missing method docstring (missing-docstring)
C:1576, 4: Missing method docstring (missing-docstring)
C:1583, 4: Missing method docstring (missing-docstring)
C:1591, 4: Missing method docstring (missing-docstring)
C:1601, 4: Missing method docstring (missing-docstring)
C:1605, 4: Missing method docstring (missing-docstring)
C:1615, 4: Missing method docstring (missing-docstring)
C:1626, 4: Missing method docstring (missing-docstring)
C:1895, 4: Missing method docstring (missing-docstring)
C:1899, 4: Missing method docstring (missing-docstring)
C:1904, 4: Missing method docstring (missing-docstring)
C:1911, 4: Missing method docstring (missing-docstring)
C:1920, 4: Missing method docstring (missing-docstring)
- [x] core.domain.user_services_test @vibhor98 
C:946, 8: Missing class docstring (missing-docstring)
C:954,12: Missing method docstring (missing-docstring)
C:961,12: Missing method docstring (missing-docstring)
- [x] core.domain.rating_services @vibhor98 
C: 59, 4: Missing function docstring (missing-docstring)
- [x] core.domain.email_manager @vibhor98 
C:267, 4: Missing function docstring (missing-docstring)
C:314, 4: Missing function docstring (missing-docstring)
- [x] core.domain.classifier_domain_test @vibhor98 
C: 29, 4: Missing method docstring (missing-docstring)
C:165, 4: Missing method docstring (missing-docstring)
- [x] core.domain.learner_playlist_services_test @vibhor98 
C: 81, 4: Missing method docstring (missing-docstring)
C: 89, 4: Missing method docstring (missing-docstring)
- [x] core.domain.learner_progress_services_test @vibhor98 
C: 90, 4: Missing method docstring (missing-docstring)
C: 99, 4: Missing method docstring (missing-docstring)
C:108, 4: Missing method docstring (missing-docstring)
C:116, 4: Missing method docstring (missing-docstring)
C:129, 4: Missing method docstring (missing-docstring)
C:145, 4: Missing method docstring (missing-docstring)

Extensions
- [x] extensions.objects.models.objects @vibhor98 
C:513, 8: Missing function docstring (missing-docstring)
C:520, 8: Missing function docstring (missing-docstring)
- [x] extensions.objects.models.objects_test @vibhor98 
C:441, 4: Missing method docstring (missing-docstring)
- [x] extensions.interactions.base @vibhor98 
C:188, 4: Missing method docstring (missing-docstring)
- [x] extensions.interactions.base_test @vibhor98 
C: 84, 4: Missing method docstring (missing-docstring)
C:107, 4: Missing method docstring (missing-docstring)
C:112, 4: Missing method docstring (missing-docstring)
C:137, 4: Missing method docstring (missing-docstring)
C:183, 8: Missing function docstring (missing-docstring)
- [x] extensions.answer_summarizers.models_test @vibhor98 
C: 40, 4: Missing method docstring (missing-docstring)

Scripts
- [x] scripts.pre_push_hook @vibhor98 
C:216, 0: Missing function docstring (missing-docstring)
C:225, 0: Missing function docstring (missing-docstring)
C:232, 0: Missing function docstring (missing-docstring)
C:247, 0: Missing function docstring (missing-docstring)
- [x] scripts.pre_commit_linter @vibhor98 
W:1668, 4: Unreachable code (unreachable)
- [x] scripts.install_third_party @vibhor98 
C:336, 0: Missing function docstring (missing-docstring)
- [x] scripts.docstrings_checker_test @vibhor98 
C: 23, 0: Missing class docstring (missing-docstring)
- [x] scripts.deploy @vibhor98 
C:200, 0: Missing function docstring (missing-docstring)
- [x] scripts.update_feconf @vibhor98 
C: 69, 0: Missing function docstring (missing-docstring)

 - [ ] Enable the check for mandatory args and returns once all docstrings are completed @apb7

**Completed:**
- [x] oppia.feconf @rahulnitdgp
- [x] oppia.scripts.build (@hoangviet1993 #5580)
 - [X] oppia.core.domain.acl_decorators: Check and correct the return types @apb7
 - [x] core.controllers.base @apb7 
Add docstrings for methods at line no.- 134, 537
- [x] core.controllers.cron @WickedBrat 
Add docstrings for class at line no.- 109  
- [x] core.controllers.collection_editor @vibhor98
Add docstrings for classes at line no.- 165, 201
- [x] core.controllers.learner_dashboard @hundredrab 
Add docstrings for class at line no.- 121
Add docstrings for methods at line no.- 33, 124
- [x] core.controllers.pages @Vishnu-M 
Add docstrings for method at line no.- 28
- [x] core.domain.acl_decorators @vibhor98
- [x] core.domain.classifier_domain @apb7
Add docstrings for methods at line no.- 45, 173
- [x] core.domain.collection_domain @vibhor98
Add docstrings for methods at line no.-
Add docstrings for class at line no.- 32
- [x] core.domain.config_domain @vibhor98
- [x] core.domain.email_manager @vibhor98
Add docstrings for methods at line no.- 37, 928, 939
- [x] core.domain.email_subscription_services @Kunalgarg2100 
- [X] core.domain.feedback_jobs_continuous @netajik #5680
Add docstrings for method at line no.- 21
- [x] oppia.core.controllers.translator @netajik 
- [x] core.domain.feedback_jobs_continuous @apb7 
- [x] core.domain.fs_domain @vibhor98
- [x] core.domain.param_domain @jervis446 
Add docstrings for method at line no.- 146
- [x] core.domain.stats_domain @vibhor98
- [x] core.domain.stats_jobs_continuous @vibhor98
- [x] core.domain.stats_jobs_one_off @abhimanyuthakre
- [x] core.domain.user_jobs_continuous @GanitGenius 
- [x] core.domain.user_jobs_one_off @GanitGenius 
- [x] core.domain.user_query_services @proishan11 
- [x] core.domain.user_services @proishan11 
- [x] core.domain.value_generators_domain @vasutomar 
- [x] core.jobs @GanitGenius 
Add docstrings for classes at line no.- 518, 581, 613, 643, 846, 934
- [x] core.tests.test_util_jobs @vibhor98
- [x] core.platform.models @joydeep1701
- [x] core.platform.email.gae_email_services @square-1111 
- [x] core.storage.collection.gae_models @vibhor98
- [x] core.storage.email.gae_models @vibhor98
- [x] core.storage.exploration.gae_models @vibhor98
- [x] core.storage.feedback.gae_models @vibhor98
- [x] core.storage.file.gae_models @vibhor98
- [X] core.storage.job.gae_models @divyadeep1 
- [x] core.tests.test_utils @apb7 
- [x] oppia.export.cloud_datastore_admin @mahjong 
- [x] oppia.extensions.interactions.base @vibhor98 
- [x] oppia.extensions.actions.base @vibhor98
- [x] oppia.extensions.answer_summarizers.models @vibhor98
- [x] oppia.extensions.issues.base @vibhor98
- [x] oppia.core.domain.skill_domain @vibhor98
- [x] oppia.extensions.objects.models.objects @vibhor98
- [x] oppia.extensions.visualizations.models @vibhor98 
- [x] oppia.scripts.pylint_extensions @tonadev 
- [x] oppia.scripts.cut_release_branch @tonadev 
- [x] oppia.scripts.docstrings_checker @lilithxxx 
- [x] oppia.scripts.prepare_automatic_backups @import-keshav 
- [x] oppia.scripts.pre_commit_linter @import-keshav 
- [x] oppia.scripts.pre_push_hook @import-keshav 
- [x] oppia.main @abeerunscore96
- [x] oppia.core.domain.acl_decorators @dchen97 
- [x] oppia.core.domain.stats_jobs_one_off @vibhor98 - #5734
- [x] Add module docstrings to- `TextInput`, `Continue`, `PencilCodeEditor`, `MusicNotesInput`, `NumericInput`, `CodeRepl`, `MultipleChoiceInput`, `InteractiveMap`, `GraphInput`, `LogicProof`, `FractionInput`, `SetInput`, `ImageClickInput`, `ItemSelectionInput`, `MathExpressionInput`, `EndExploration`. @vibhor98 #5734
- [x] oppia.scripts.build @import-keshav  -- #5808
- [x] oppia.core.domain.acl_decorators @dchen97 #5803
- [x] oppia.extensions.objects.models.objects @rafalk342
- [x] oppia.schema_utils @vibhor98  #5849
- [x] oppia.core.domain.fs_services @vibhor98  #5849
- [x] oppia.core.storage.question.gae_models @vibhor98  #5849
- [x] oppia.scripts.docstrings_checker @import-keshav 
- [x] oppia.scripts.common @import-keshav 
- [x] oppia.jinja_utils @vibhor98 


Discussion:
Hi @yashLadha @apb7 these are the set of files that need addition of docstrings. You can follow the guidelines and tackle files one by one. Remember we need to work together collaboratively so I will be keeping track of you time to time. Please share if you encounter any type of problem in the future.
Hello! I'm new here and would like to start working on this.
Hi @hundredrab -- sounds good, thanks! Would you mind following the instructions [here](https://github.com/oppia/oppia/wiki/Contributing-code-to-Oppia#setting-things-up) to get started? Once you've done that, feel free to pick a file on this issue and tell us what it is, and we'll update the thread accordingly. Thanks!
@seanlip sure. I'd like to work on `core.controllers.learner_dashboard` thanks
Thanks -- let us know when you have finished the instructions I mentioned above, and we can assign you then.
@seanlip I am new here and have read the instructions.Can I work on `core.controllers.pages`? 
  
Hi @Vishnu-M. Sounds Good! Please follow  the instructions first [here](https://github.com/oppia/oppia/wiki/Contributing-code-to-Oppia#setting-things-up) and sign the CLA to get started.
Once you are done, you can pick any file of your choice.  
Hey @vibhor98! I'd like to work on `core.controllers.base`. Also, [line 537](https://github.com/oppia/oppia/blob/develop/core/controllers/base.py#L537) does not exactly point to a method (It points to `digester.digest`). Can you please point out which method was being referred there?  
Thanks!
@apb7  Sure assigned you. You can run the pylint test on specific file given as in the instructions. 
  
Hi @apb7 , I guess that's just a typos 
```
************* Module oppia.core.controllers.base
C:134, 4: Missing method docstring (missing-docstring)
C:543, 4: Missing method docstring (missing-docstring)
C:547, 4: Missing method docstring (missing-docstring)
```
you can may prefer this^
  
Thanks, @vibhor98 and @DubeySandeep!

Resolving patch:
diff --git a/core/controllers/learner_dashboard.py b/core/controllers/learner_dashboard.py
--- a/core/controllers/learner_dashboard.py
+++ b/core/controllers/learner_dashboard.py
@@ -31,6 +31,7 @@ class LearnerDashboardPage(base.BaseHandler):
 
     @acl_decorators.can_access_learner_dashboard
     def get(self):
+        """Handles GET requests."""
         self.values.update({
             'nav_mode': feconf.NAV_MODE_LEARNER_DASHBOARD
         })
@@ -119,12 +120,16 @@ def get(self):
 
 
 class LearnerDashboardIdsHandler(base.BaseHandler):
+    """Gets the progress of the learner.
+
+    Gets the ids of all explorations and collections completed by the user,
+    the activities currently being pursued, and the activities present in
+    the playlist.
+    """
 
     @acl_decorators.can_access_learner_dashboard
     def get(self):
-        # Get the progress of the learner - the ids of the explorations and
-        # collections completed by the user, the activities currently being
-        # completed and the ones present in the playlist of the user.
+        """Handles GET requests."""
         learner_dashboard_activities = (
             learner_progress_services.get_learner_dashboard_activities( # pylint: disable=line-too-long
                 self.user_id))


Test patch: