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!
@vibhor98  I'd like to work on core.domain.email_subscription_services
Hey @Kunalgarg2100 Have you followed the instructions given [here](https://github.com/oppia/oppia/wiki/Contributing-code-to-Oppia#setting-things-up)  and signed the CLA? Please tell me when you are ready. I'll assign it to you.
Yes, I have signed.

On Mon, Jan 8, 2018 at 7:31 PM, Vibhor Agarwal <notifications@github.com>
wrote:

> Hey @Kunalgarg2100 <https://github.com/kunalgarg2100> Have you followed
> the instructions given here
> <https://github.com/oppia/oppia/wiki/Contributing-code-to-Oppia#setting-things-up>
> and signed the CLA? Please tell me when you are ready. I'll assign it to
> you.
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/4374#issuecomment-355973931>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/AWOsVTpNcguf-7wbFLPD63I8SOnGjlbEks5tIh-8gaJpZM4RUxhe>
> .
>

Great @Kunalgarg2100. Welcome to Oppia! 😄  You can go ahead as I have assigned it to you.
Hey @vibhor98! If i am not wrong , `core.domain.collection_domain` is already Update docstrings and there is no class in line no:- 32.
Hello @jervis446! Instead of going by the mentioned line numbers, run:
`pylint --disable=all --enable=missing-docstring <path/to/file>`   
Thanks!
OK thanks @apb7 
Hi , @vibhor98 I'd like to work on  `core.domain.param_domain`
Hello @jervis446! I have assigned it to you. Thanks! 
Hello, @apb7 I new but have signed the CLA I would like to work on core.domain.stats_domain 
@NickeL74, assigned you that!
Hi @vibhor98 I was thinking to work on "core.domain.acl_decorators". But unfortunately, 
I'm getting some errors while executing the pylint command given above. Can you please help.

![error](https://user-images.githubusercontent.com/22103406/35197616-ca7b4aa2-ff07-11e7-97cf-aad646bd0815.png)


 
Hey @Nix07! Please put another `-` before `disable` (`pylint --disable=all --enable=missing-docstring <path/to/file>`) and see if that works!   
Thanks!
Give me a moment please!
Nope, it is still not working!

![12](https://user-images.githubusercontent.com/22103406/35197721-8f139bca-ff09-11e7-91dd-2cb9d62ec29b.png)

Hi @Nix07 , Is your local branch up  to date? Because these checks have been recently added and linter may not be able to find docstyle.
Yeah, it's up-to-date.  
@Nix07: Can you please do a `pylint --version` once? Also, remove these [lines](https://github.com/oppia/oppia/blob/develop/.pylintrc#L8:L11) from .pylintrc and then try once more!  
Thanks!
Can you also check you `.pylintrc` file? It contains plugin for
extensions.docstyle. May be it's not installed properly or there is any
version difference.

On Mon, Jan 22, 2018 at 12:25 AM, Nikhil Prakash <notifications@github.com>
wrote:

> Yeah, it's up-to-date.
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/4374#issuecomment-359271106>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/AZZHvEfmjYSslQyAXPuTeVRWv6Gydml_ks5tM4gdgaJpZM4RUxhe>
> .
>

Thanks @apb7 Got the output, after removing those lines!
And Thanks @vibhor98 for your time...
@vibhor98: ~~I think the current pylint version  1.7.1 does not support `pylint.extensions.docstyle` which was used in PR #4572. It only has support for `pylint.extensions.docparams`. Please confirm your Pylint version once @vibhor98 so that we can look into this.~~ 
I tried this locally by using the exact version 1.7.1 and it works. The problem would have been with @Nix07's pylint version (1.5.2)
Thanks again @vibhor98! Sorry for troubling you :) 
@apb7 my pylint version is -- 1.8.1. So this is the issue.

On Mon, Jan 22, 2018 at 12:47 AM, Apurv Bajaj <notifications@github.com>
wrote:

> @vibhor98 <https://github.com/vibhor98>: The current pylint version 1.7.1
> does not support pylint.extensions.docstyle which was used in PR #4572
> <https://github.com/oppia/oppia/pull/4572>. It only has support for
> pylint.extensions.docparams. Please confirm your Pylint version once
> @vibhor98 <https://github.com/vibhor98> so that we can look after this.
> Thanks!
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/4374#issuecomment-359272676>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/AZZHvHpf7U2XifP-vdseCGJhVGNhZMBtks5tM41lgaJpZM4RUxhe>
> .
>

Hi,
Can I have core.platform.models and core.platform.email.gae_email_services ?
Regards,
Chirag Vashist
Sure go ahead @SerChirag . Assigned it to you.
Hi, @vibhor98 , I am unable to understand how I have to start because their lots of file and I confused with them, please suggest me because I am new to the opensource organization.
Hey there @Sunil16202! Please check out this [page](https://github.com/oppia/oppia/wiki/Contributing-code-to-Oppia#setting-things-up) to get started!  
Thanks!
@apb7 @vibhor98 Just to confirm @Sunil16202 has already signed the CLA. I think he needs help in getting started with this issue!
Sir I am unable to understand what's things we have to do by docstrings,
Since it is for documenting function, class etc. It is basically comment
for other developer.

Thanks
Sunill

On Jan 26, 2018 4:07 PM, "Shubha Gupta" <notifications@github.com> wrote:

> @apb7 <https://github.com/apb7> @vibhor98 <https://github.com/vibhor98>
> Just to confirm @Sunil16202 <https://github.com/sunil16202> has already
> signed the CLA. I think he needs help in getting started with this issue!
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/4374#issuecomment-360744834>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/AWR_t_HoeD6Yn15yUCflBo0SM5bD8BdEks5tOardgaJpZM4RUxhe>
> .
>

Thanks, @shubha1593!
@sunil1602: We need to document _what_ each function/method does which
includes writing its arguments, returns and raises.
To start with, follow these steps:
1. Pick up any file which hasn't been documented yet.
2. Run `pylint --disable=all --enable=missing-docstrings <path/to/file>`
and see which functions/methods need documentation.(Please ensure that your
Pylint version is 1.7.1. You can check this by `pylint --version`)
3. Before documenting, you may need to look at the already documented files
in order to see what the right way to do this, is.
You can find all this information as comments in the thread. Go through
them once!
Thanks!

On Jan 26, 2018 4:40 PM, "Sunil Gupta" <notifications@github.com> wrote:

> Sir I am unable to understand what's things we have to do by docstrings,
> Since it is for documenting function, class etc. It is basically comment
> for other developer.
>
> Thanks
> Sunill
>
> On Jan 26, 2018 4:07 PM, "Shubha Gupta" <notifications@github.com> wrote:
>
> > @apb7 <https://github.com/apb7> @vibhor98 <https://github.com/vibhor98>
> > Just to confirm @Sunil16202 <https://github.com/sunil16202> has already
> > signed the CLA. I think he needs help in getting started with this issue!
> >
> > —
> > You are receiving this because you were mentioned.
> > Reply to this email directly, view it on GitHub
> > <https://github.com/oppia/oppia/issues/4374#issuecomment-360744834>, or
> mute
> > the thread
> > <https://github.com/notifications/unsubscribe-auth/AWR_t_
> HoeD6Yn15yUCflBo0SM5bD8BdEks5tOardgaJpZM4RUxhe>
> > .
> >
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/4374#issuecomment-360755864>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/AXrQuZXj3QNt88AHNu2t2op4E-3T6Dtqks5tObKMgaJpZM4RUxhe>
> .
>

Thanks

On Jan 26, 2018 5:05 PM, "Apurv Bajaj" <notifications@github.com> wrote:

Thanks, @shubha1593!
@sunil1602: We need to document _what_ each function/method does which
includes writing its arguments, returns and raises.
To start with, follow these steps:
1. Pick up any file which hasn't been documented yet.
2. Run `pylint --disable=all --enable=missing-docstrings <path/to/file>`
and see which functions/methods need documentation.(Please ensure that your
Pylint version is 1.7.1. You can check this by `pylint --version`)
3. Before documenting, you may need to look at the already documented files
in order to see what the right way to do this, is.
You can find all this information as comments in the thread. Go through
them once!
Thanks!


On Jan 26, 2018 4:40 PM, "Sunil Gupta" <notifications@github.com> wrote:

> Sir I am unable to understand what's things we have to do by docstrings,
> Since it is for documenting function, class etc. It is basically comment
> for other developer.
>
> Thanks
> Sunill
>
> On Jan 26, 2018 4:07 PM, "Shubha Gupta" <notifications@github.com> wrote:
>
> > @apb7 <https://github.com/apb7> @vibhor98 <https://github.com/vibhor98>
> > Just to confirm @Sunil16202 <https://github.com/sunil16202> has already

> > signed the CLA. I think he needs help in getting started with this
issue!
> >
> > —
> > You are receiving this because you were mentioned.
> > Reply to this email directly, view it on GitHub
> > <https://github.com/oppia/oppia/issues/4374#issuecomment-360744834>, or
> mute
> > the thread
> > <https://github.com/notifications/unsubscribe-auth/AWR_t_
> HoeD6Yn15yUCflBo0SM5bD8BdEks5tOardgaJpZM4RUxhe>
> > .

> >
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/4374#issuecomment-360755864>, or
mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/
AXrQuZXj3QNt88AHNu2t2op4E-3T6Dtqks5tObKMgaJpZM4RUxhe>
> .

>

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<https://github.com/oppia/oppia/issues/4374#issuecomment-360762909>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AWR_t6hM94aEAh0U4rbulD-rIQW_QP6kks5tObh5gaJpZM4RUxhe>
.

I have pylint version 1.8, is there any problem?
Hello @Sunil16202! Please prefer using pylint 1.7.1 although I don't think 1.8 will cause any problem with docstring checking. Thanks!
I run code with Pylint 1.8, its ok.
How I can know that which type of class or function, what's things do.
@Sunil16202: Please follow the instructions given above in the issue thread! Thanks!
@seanlip. I'd like to work on core.domain.feedback_jobs_continuous.
Thanks
Sure! @Sunil16202 , Go ahead. Assigned you.
@Sunil16202 , What about `core.domain.stats_jobs_continuous` ? It's also assigned to you. 
@vibhor98 I am still working on it, it has huge lines of code approx 700 line. So, it is a little bit of difficult to understand entire code, is there any other way to do that.
@Sunil16202 , It's fine then. You can analyze only specific function for which docstrings have to be added and not the whole code. But yes, little understanding of the functions that is called by the concerned function is needed.
When I run "pylint --disable=all --enable=missing-docstring", it gives me Your code has been rated at 9.66/10. It is fine or it should give 10.

The rating should be 10. Please see to this!  Thanks!
How I can handle this, Since I am using pylint 1.8

On Jan 31, 2018 1:53 PM, "Apurv Bajaj" <notifications@github.com> wrote:

> The rating should be 10. Please see to this! Thanks!
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/4374#issuecomment-361857874>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/AWR_t40VlCUBiTIZ49fKLQBTmlfovA73ks5tQCLsgaJpZM4RUxhe>
> .
>

Sorry, I am unable to understand the _exact_ problem you are facing. Make sure _all_ methods/functions/classes which spring up during pylint check are documented. Only then will you get a rating of 10.  
I'm again quoting the procedure to be followed:  
>To start with, follow these steps: 
>1. Pick up any file which hasn't been documented yet. 
>2. Run `pylint --disable=all --enable=missing-docstrings <path/to/file>` and see which functions/methods need documentation.(Please ensure that your Pylint version is 1.7.1. You can check this by `pylint --version`) 
>3. Before documenting, you may need to look at the already documented files in order to see what the right way to do this, is. 
>You can find all this information as comments in the thread. Go through them once.  

Please go through the already documented files once again!  
Thanks!
Hi @Sunil16202, go through the @apb7's comment and if you aren't able to run pylint then please follow this :

(`C: lineNumber`)
You'll have to write doc-string on the following line numbers:
- If you're working for feedback_jobs_continuous, then follow this:
```
************* Module oppia.core.domain.feedback_jobs_continuous
C:  1, 0: Missing module docstring (missing-docstring)
C: 30, 0: Missing class docstring (missing-docstring)
C: 42, 4: Missing method docstring (missing-docstring)
C: 47, 4: Missing method docstring (missing-docstring)
C: 51, 4: Missing method docstring (missing-docstring)
C: 68, 8: Missing function docstring (missing-docstring)
C: 82, 8: Missing function docstring (missing-docstring)
C: 96, 8: Missing function docstring (missing-docstring)
C:195, 4: Missing method docstring (missing-docstring)
C:199, 4: Missing method docstring (missing-docstring)

Global evaluation
-----------------
Your code has been rated at 8.61/10
```
- otherwise, follow this:
```
************* Module oppia.core.domain.stats_jobs_continuous
C: 55, 0: Missing class docstring (missing-docstring)
C: 66, 4: Missing method docstring (missing-docstring)
C: 72, 4: Missing method docstring (missing-docstring)
C: 76, 4: Missing method docstring (missing-docstring)
C: 95, 8: Missing function docstring (missing-docstring)
C:109, 8: Missing function docstring (missing-docstring)
C:231, 4: Missing method docstring (missing-docstring)
C:235, 4: Missing method docstring (missing-docstring)
C:512, 4: Missing method docstring (missing-docstring)
C:516, 4: Missing method docstring (missing-docstring)
C:525, 4: Missing method docstring (missing-docstring)
C:549, 4: Missing method docstring (missing-docstring)
C:698, 0: Missing class docstring (missing-docstring)
C:711, 4: Missing method docstring (missing-docstring)
C:715, 4: Missing method docstring (missing-docstring)
C:719, 4: Missing method docstring (missing-docstring

Global evaluation
-----------------
Your code has been rated at 9.32/10
```
Do let us know for which part you're working so that we can de-assign you from the other parts.
Thanks!
Thanks, I understood, what's a thing I was doing wrong.
I am working on stats_jobs_continuous.
@shubha1593 Can I start working on core.jobs?
Hi @anookeen , Have you signed the CLA first? If not, please check out this [page](https://github.com/oppia/oppia/wiki/Contributing-code-to-Oppia#setting-things-up) to get started and then, you can move ahead.
Yes @vibhor98  I have signed up the CLA.
Great! @anookeen , I've assigned you. You can go ahead! :)
Thanks :) @vibhor98 
Hi guys, I am new here and to open source as well. I would like to work on this. So, what should I start with?

Hello @harsha444! Thanks for your interest. Would mind going through the instructions [here](https://github.com/oppia/oppia/wiki/Contributing-code-to-Oppia#setting-things-up) and sign the CLA as stated? Once you're done, follow these steps for this issue:  
>1. Pick up any file which hasn't been documented yet.
>2. Run `pylint --disable=all --enable=missing-docstrings <path/to/file>`
and see which functions/methods need documentation.(Please ensure that your
>Pylint version is 1.7.1. You can check this by `pylint --version`)
>3. Before documenting, you may need to look at the already documented files
in order to see what the right way to do this, is.
You can find all this information as comments in the thread. Go through
them once!

Thanks! 
I have done that previously. Doing it once is enough right? @apb7 
The task was assigned by @vibhor to me

On 8 February 2018 at 16:26, Sri Harsha <notifications@github.com> wrote:

> I have done that previously. Doing it once is enough right? @apb7
> <https://github.com/apb7>
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/4374#issuecomment-364166535>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/ATVkTGKpBqGF8l6XAO9ZlZeIEtEZWB-Yks5tSyBOgaJpZM4RUxhe>
> .
>

Yes, @harsha444. I've updated the comment. Please see it once :) 
Sure, thanks.! @apb7 
I completed  core.domain.stats_jobs_continuous, how can I push it?
 @sunil16202 use this command
git push origin your-branch-name
I got an error.
![screenshot from 2018-02-10 16-44-22](https://user-images.githubusercontent.com/23363511/36061557-e64fdc82-0e81-11e8-88f8-57d3f9e69082.png)


try git push -u origin develop @Sunil16202 
Have you set the origin ? @sunil
Hello @Sunil16202! Please use `git push origin your-branch-name` and not your forked repo URL.  
Thanks!
no, how can I set @anookeen 
git remote add origin path/to/your/repo/on/github
@sunil use this command
git remote add origin path/to/your/repo/on/github
what is branch name for  core.domain.stats_jobs_continuous, I have to push it.
Use the command " git branch" to see the name of branch.

On 11 Feb 2018 9:50 am, "Sunil Gupta" <notifications@github.com> wrote:

what is branch name for core.domain.stats_jobs_continuous, I have to push
it.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<https://github.com/oppia/oppia/issues/4374#issuecomment-364721412>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/ATVkTF0dJ3E97kAquqbjWzaNcP33BSEZks5tTnGdgaJpZM4RUxhe>
.

I got, 
* develop

@sunil kindly make another branch and commit changes to that branch.  Push
that to the origin afterwards. You don't have to change the develop.

On 11 Feb 2018 9:54 am, "Sunil Gupta" <notifications@github.com> wrote:

> I got,
>
>    - develop
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/4374#issuecomment-364721571>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/ATVkTKpdGS8ihSK7nl8UUWxsjxSaJCekks5tTnJogaJpZM4RUxhe>
> .
>

but, I ran code git push origin develop,
It shows me Everything up-to-date

![capture](https://user-images.githubusercontent.com/23363511/36069897-ebc7ba78-0f16-11e8-82c7-6006bf49f751.PNG)

@Sunil was this task of docstrings assigned to you?

On 11 Feb 2018 10:03 am, "Sunil Gupta" <notifications@github.com> wrote:

> [image: capture]
> <https://user-images.githubusercontent.com/23363511/36069897-ebc7ba78-0f16-11e8-82c7-6006bf49f751.PNG>
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/4374#issuecomment-364721989>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/ATVkTFw5aS06VdldqPAlZ7hib6W0SHaoks5tTnSKgaJpZM4RUxhe>
> .
>

Yes, This task was assigned to me.
core.domain.stats_jobs_continuous @Sunil16202
@anookeen  I create new branch as local then I used git push origin local.
![sunil](https://user-images.githubusercontent.com/23363511/36069976-46537ea4-0f18-11e8-992a-6d548620b754.png)

@sunil is your git now updated?

On 11 Feb 2018 10:13 am, "Sunil Gupta" <notifications@github.com> wrote:

> I create new branch as local then I used git push origin local.
> [image: sunil]
> <https://user-images.githubusercontent.com/23363511/36069976-46537ea4-0f18-11e8-992a-6d548620b754.png>
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/4374#issuecomment-364722445>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/ATVkTAr6ddlDm3sDWDvVBRFiCd58oapxks5tTncLgaJpZM4RUxhe>
> .
>

yes, it shows me this
Branch local set up to track remote branch local from origin.
Everything up-to-date
@anookeen 

Okay @sunil this seems fine to me.

On 11 Feb 2018 10:29 am, "Sunil Gupta" <notifications@github.com> wrote:

> yes, it shows me this
> Branch local set up to track remote branch local from origin.
> Everything up-to-date
> @anookeen <https://github.com/anookeen>
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/4374#issuecomment-364723019>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/ATVkTPsrHuJnMEgB7Alsja1_kXPiWCHCks5tTnrTgaJpZM4RUxhe>
> .
>

but, on Oppia GitHub site, this task has not checked.
 core.domain.stats_jobs_continuous @Sunil16202
@anookeen 
Have you created the pull request? If not create one. It will be reviewed
by the mentors and they'll merge that into oppia. Then it will appear
checked @sunil

On 11 Feb 2018 10:33 am, "Sunil Gupta" <notifications@github.com> wrote:

> but, on Oppia GitHub site, this task has not checked.
> core.domain.stats_jobs_continuous @Sunil16202
> <https://github.com/sunil16202>
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/4374#issuecomment-364723170>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/ATVkTEeVB99NQGdo8UxoO50ewSKZcGUNks5tTnvCgaJpZM4RUxhe>
> .
>

I ran code
git pull origin local
Is it fine.

On Feb 11, 2018 11:15 AM, "Anoosha keen" <notifications@github.com> wrote:

> Have you created the pull request? If not create one. It will be reviewed
> by the mentors and they'll merge that into oppia. Then it will appear
> checked @sunil
>
> On 11 Feb 2018 10:33 am, "Sunil Gupta" <notifications@github.com> wrote:
>
> > but, on Oppia GitHub site, this task has not checked.
> > core.domain.stats_jobs_continuous @Sunil16202
> > <https://github.com/sunil16202>
> >
> > —
> > You are receiving this because you were mentioned.
> > Reply to this email directly, view it on GitHub
> > <https://github.com/oppia/oppia/issues/4374#issuecomment-364723170>, or
> mute
> > the thread
> > <https://github.com/notifications/unsubscribe-auth/
> ATVkTEeVB99NQGdo8UxoO50ewSKZcGUNks5tTnvCgaJpZM4RUxhe>
> > .
> >
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/4374#issuecomment-364723784>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/AWR_t3IZ1zCFDMtFTtN63uixnmiVJivcks5tTn6BgaJpZM4RUxhe>
> .
>

You need not to pull from origin rather you should pull from the  oppia's
github to make your local branch insync with oppia develop.

On 11 Feb 2018 10:54 am, "Sunil Gupta" <notifications@github.com> wrote:

> I ran code
> git pull origin local
> Is it fine.
>
> On Feb 11, 2018 11:15 AM, "Anoosha keen" <notifications@github.com> wrote:
>
> > Have you created the pull request? If not create one. It will be reviewed
> > by the mentors and they'll merge that into oppia. Then it will appear
> > checked @sunil
> >
> > On 11 Feb 2018 10:33 am, "Sunil Gupta" <notifications@github.com> wrote:
> >
> > > but, on Oppia GitHub site, this task has not checked.
> > > core.domain.stats_jobs_continuous @Sunil16202
> > > <https://github.com/sunil16202>
> > >
> > > —
> > > You are receiving this because you were mentioned.
> > > Reply to this email directly, view it on GitHub
> > > <https://github.com/oppia/oppia/issues/4374#issuecomment-364723170>,
> or
> > mute
> > > the thread
> > > <https://github.com/notifications/unsubscribe-auth/
> > ATVkTEeVB99NQGdo8UxoO50ewSKZcGUNks5tTnvCgaJpZM4RUxhe>
> > > .
> > >
> >
> > —
> > You are receiving this because you were mentioned.
> > Reply to this email directly, view it on GitHub
> > <https://github.com/oppia/oppia/issues/4374#issuecomment-364723784>, or
> mute
> > the thread
> > <https://github.com/notifications/unsubscribe-auth/AWR_
> t3IZ1zCFDMtFTtN63uixnmiVJivcks5tTn6BgaJpZM4RUxhe>
> > .
> >
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/4374#issuecomment-364724323>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/ATVkTCrBsFyEk_DVwYCPfrwIgFVNnUqLks5tToB-gaJpZM4RUxhe>
> .
>

@Sunil16202 Please take a look at [this](https://github.com/oppia/oppia/wiki/Contributing-code-to-Oppia#instructions-for-making-a-code-change). This should help!
Hi! I have completed the setup of Oppia and have signed the CLA. I'd like to start working on one of the files now. 
Hey @divyadeep1 , Feel free to select any of the remaining files and let us know so that I can assign you the same.
@vibhor98 Before selecting a file, there's an issue that I need some help with. When I run `pylint --disable=all --enable=missing-docstring <filename>`, I get an import error saying "No module named docstyle". How should I fix this?
Hey, @divyadeep1! Please ensure that your pylint version is >=1.7.1. You can check it by `pylint --version`.  
Thanks!
Hey @apb7, it was a version problem indeed. Thanks a lot! So I checked almost all the files using pylint, but it doesn't show me missing-docstring on any of them. It shows a score of 10/10 with no information on missing docstrings. Am I doing something wrong?
Hi, @divyadeep1! Please select any of the remaining files and let us know it first. Then, as stated in the thread, use:  
`
pylint --disable=all --enable=missing-docstring <path/to/file>
`
Also, please ensure the version is >= 1.7.1.  
Thanks!
@divyadeep1: This is the output which I get:  
```
************* Module oppia.core.domain.acl_decorators
C: 31, 4: Missing function docstring (missing-docstring)
C: 41, 4: Missing function docstring (missing-docstring)
C: 61, 4: Missing function docstring (missing-docstring)
C: 80, 4: Missing function docstring (missing-docstring)
C:101, 4: Missing function docstring (missing-docstring)
C:120, 4: Missing function docstring (missing-docstring)
C:142, 4: Missing function docstring (missing-docstring)
C:159, 4: Missing function docstring (missing-docstring)
C:176, 4: Missing function docstring (missing-docstring)
C:193, 4: Missing function docstring (missing-docstring)
C:226, 4: Missing function docstring (missing-docstring)
C:242, 4: Missing function docstring (missing-docstring)
C:259, 4: Missing function docstring (missing-docstring)
C:278, 4: Missing function docstring (missing-docstring)
C:297, 4: Missing function docstring (missing-docstring)
C:323, 4: Missing function docstring (missing-docstring)
C:338, 4: Missing function docstring (missing-docstring)
C:352, 4: Missing function docstring (missing-docstring)
C:366, 4: Missing function docstring (missing-docstring)
C:389, 4: Missing function docstring (missing-docstring)
C:412, 4: Missing function docstring (missing-docstring)
C:428, 4: Missing function docstring (missing-docstring)
C:449, 4: Missing function docstring (missing-docstring)
C:469, 4: Missing function docstring (missing-docstring)
C:491, 4: Missing function docstring (missing-docstring)
C:512, 4: Missing function docstring (missing-docstring)
C:527, 4: Missing function docstring (missing-docstring)

-----------------------------------
Your code has been rated at 8.98/10
```  
Can you please try running it from the oppia directory? (You can use this list as a reference though.) 
@apb7: I'm using this command from the oppia directory: `pylint --disable=all --enable=mising-docstring core/domain/acl_decorators.py` but still it's showing me the same output as before.
Hi @divyadeep1 This file has already one [PR](https://github.com/oppia/oppia/pull/4604/files). Can you choose some other one? It was not updated. But now I have updated it.
Hey @vibhor98, how about core.storage.job.gae_models then?
@divyadeep1 , you can take it. Shall I assign you?
@vibhor98 Yes, please do. The problem is here as well though.
![screenshot from 2018-02-16 21-30-11](https://user-images.githubusercontent.com/19911687/36316561-a7f1e906-1360-11e8-9c46-dc8cede2203f.png)

@divyadeep1: Please change `mising` to `missing`. If this does not works, please post the output of `pylint --version` here.   
Thanks!

@divyadeep1: Please change `mising` to `missing`. If this does not work, please post the output of `pylint --version` here.   
Thanks!

@apb7 It did work. I feel so silly. Thank you so much!

@divyadeep1 , I've assigned you. Please, go ahead!
Working on it, Thanks @vibhor98 
@divyadeep1: No problem, happy to help :)
Hey, @WickedBrat! Please use this to check the line numbers in case of any ambiguity:  
`pylint --disable=all --enable=missing-docstring <path/to/file>` 
Thanks!
@WickedBrat: I've updated the line numbers in the issue thread. Do you plan to work on this?
@WickedBrat: Sure, go ahead -- I've assigned you! 
what should be the head branch, when I have to push  "core.domain.stats_jobs_continuous".
Head branch should be Oppia's develop branch. You can push from your branch
to this branch. Thanks!

On Tue, Feb 27, 2018 at 10:00 AM, Sunil Gupta <notifications@github.com>
wrote:

> what should be the head branch, when I have to push
> "core.domain.stats_jobs_continuous".
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/4374#issuecomment-368743922>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/AZZHvFRjNsQwQ0_KleF507U2RxKWPtpEks5tY4TggaJpZM4RUxhe>
> .
>

I did it and it shows me " These branches can be automatically merged"
It means you have previously commited to the Oppia's develop branch with
your same branch. Then, your commit merges with your previous commits. Try
to push with new branch of yours and this problem can be removed.

On Tue, Feb 27, 2018 at 10:15 AM, Sunil Gupta <notifications@github.com>
wrote:

> I did it and it shows me " These branches can be automatically merged"
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/4374#issuecomment-368746081>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/AZZHvHMPDrvdMrp3cMnKD8-j0QLo1ip3ks5tY4iHgaJpZM4RUxhe>
> .
>

I submitted the core.domain.feedback_jobs_continuous file but, it is not checked. How can I check this file?
What do you mean by 'it is not checked' ? Are you talking about Travis
tests?

On Tue, Mar 6, 2018 at 11:50 PM, Sunil Gupta <notifications@github.com>
wrote:

> I submitted the core.domain.feedback_jobs_continuous file but, it is not
> checked. How can I check this file?
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/4374#issuecomment-370877649>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/AZZHvPuFKjmiBAQ0-_OEvIGJSeqyqjgLks5tbtNogaJpZM4RUxhe>
> .
>

I completed  core.domain.stats_jobs_continuous @Sunil16202, but this is not checked. So, how can I know this work is done by me.
If it is merged, then you can check it. :)

On Wed, Mar 7, 2018 at 12:04 AM, Sunil Gupta <notifications@github.com>
wrote:

> I completed core.domain.stats_jobs_continuous @Sunil16202
> <https://github.com/sunil16202>, but this is not checked. So, how can I
> know this work is done by me.
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/oppia/oppia/issues/4374#issuecomment-370882025>, or mute
> the thread
> <https://github.com/notifications/unsubscribe-auth/AZZHvJ_QgY34ryhmC_K0UEK9bJuGlWJfks5tbtaYgaJpZM4RUxhe>
> .
>

When it will be merged because I want to know that work is completely correct or I should change something on it.
Hi, i would like to work on:
 - core.jobs
 - core.domain.user_jobs_continuous
 - core.domain.user_jobs_one_off

For the core.jobs, line numbers for methods are not aligned.

Hi @GanitGenius, assigned you! 
Hey @vibhor98, could you please check out the line numbers for methods in core.jobs? 
Hi @Sunil16202, might want to check the 5th point [here](https://github.com/oppia/oppia/wiki/Contributing-code-to-Oppia#instructions-for-making-a-code-change), that should answer your question!
Hi @GanitGenius , there is need to update class docstrings only. Here are the line nos.-
```C:518, 0: Missing class docstring (missing-docstring)
C:581, 0: Missing class docstring (missing-docstring)
C:613, 0: Missing class docstring (missing-docstring)
C:643, 0: Missing class docstring (missing-docstring)
C:846, 0: Missing class docstring (missing-docstring)
C:934, 0: Missing class docstring (missing-docstring)
```
Hope this helps!
Hi! Can I work on core.domain.user_query_services and core.domain.user_services. I have gone through the instructions and signed the CLA.
Thanks :smile: 
Sure, @proishan11! I've assigned you. Welcome to Oppia :) 
Working on it. Thanks, @apb7 .
Hi! I am new here and want to work on `core.platform.email.gae_email_services`. I have read the instructions.
Thanks
@square-1111 : Sure, go ahead -- I've assigned you :)
Hi @vibhor98 , I am new here and would like to start contributing, i would like to work on `core.domain.value_generators_domain`  , can you assign me this?
I've already read the instructions and signed the CLA
Thanks! 
Hi @vasutomar , Welcome to Oppia! 😄 Sure, I've assigned you. Please go ahead!
Hi @GanitGenius , Are you working on the assigned files for updating the docstrings? Thanks!
@vibhor98 yes i will do it soon, need some more time.
@apb7 & @vibhor98, Can you please check why we are getting missing docstrings  on line one for [scripts/custom_lint_checks.py](https://github.com/oppia/oppia/blob/develop/scripts/custom_lint_checks.py) file?
@DubeySandeep, It's because each python file must have module docstrings too which is missing in this file. 
I'd like to work on oppia.scripts.custom_lint_checks ! Thanks!

Hi @Panda2498 -- thanks! Assigned you :)
Assigned `oppia.core.domain.acl_decorators` to @sumayaSalihs.
Hi @bugtester7, have you signed the CLA? if no then would you mind following these [wiki](https://github.com/oppia/oppia/wiki/Contributing-code-to-Oppia#setting-things-up) instructions to get started? :)
Hi! @diveshuttam. Welcome to Oppia! Please could you follow the instructions <a href="https://goo.gl/forms/AttNH80OV0">here</a> to get started ? You'll need to do this before we can accept your PR. Thanks!
Getting error while using pylint on your codebase.
any suggestion for other tool for test.
i would like to work on oppia.scripts.build
Hi @import-keshav , I am currently working on `oppia.scripts.build`  via PR #5580 and have filled out all docstring. Would you mind taking up a different file?
EDIT: oppia.scripts.build is completed. 
ok no problem @hoangviet1993 , i can work on other file  :+1 
Please assign me an issue.
Assigned oppia.feconf to @rahulnitdgp. Thanks!
Hello how are you?
I am new, I would like to be assigned one to go to work.
Thank you
Hi @DiegoCaraballo, how about `schema_utils.py`? Feel free to choose this or any other unassigned file of your choice and let us know so that we can assign you. Thanks! 
Hi @vibhor98 It seems good to me, I will start working with schema_utils.py? . Thank you

Hi @DiegoCaraballo, I've assigned you to  `schema_utils.py` part of this issue! :) you can start working on it.
Would anyone mind assigning me to one of the files? Thanks!
Hi @dchen97, I think you can start with `oppia.core.domain.acl_decorators` file. I'm going to assign you for the same! :) 
Hi every one, would any one assign me an issue.
Hi @netajik, I've assigned you `oppia.main`. Please go ahead! :) 
i want to work on  oppia.scripts.pre_push_hook
please assign me
Hi @import-keshav, I've assigned you three files- `scripts.prepare_automatic_backups`,
`scripts.pre_commit_linter` and `scripts.pre_push_hook`. They need just few lines of docstrings so, you can take them all in one PR. Please go ahead! :)
thanks sir  😊
Hi! I'd like to get started with one of the files :smile:. Thanks! 
Hi @kvaluruk, I 've assigned you for `oppia.scripts.docstrings_checker` you can start working! :) 
Hi @dchen97, any update on `acl_decorators`?
Hi @hemant0308, I'm not sure when were you assigned to `jinja_utils` still any update?
Hi @netajik, any updates on `Oppia.main`? 
> Hi @hemant0308, I'm not sure when were you assigned to `jinja_utils` still any update?

Sorry..! @DubeySandeep 
I dont know who assigned this to me.
anyway i will work on this.
hi @vibhor98, sorry for the late replay. I was try to understand **oppia.main** but it takes more time for me.
 so i request you to assign me one of the file which can easily understand by the beginners.
Hi @netajik, thanks for letting us know. I'll assign you `oppia.core.controllers.translator` and  `oppia.core.domain.feedback_jobs_continuous`. Just one line of docstrings are required in both of them so, please try to incorporate them in a single PR.
Thank you very much @vibhor98 
Hi @vibhor98,  would you review my pull request.
Hi, @DubeySandeep would you review my pull request.
Hi, @DubeySandeep would you review my pull request. Fix part of #4374 update docstrings in oppia.core.controllers.translator and oppia.core.domain.feedback_jobs_continuous.

Hi, I submitted my first PR yesterday and I'm waiting for review. Can I get assigned any file/files?
Hi @tonadev, I've assigned you `scripts.custom_lint_checks` and `scripts.cut_release_branch`. Please go ahead and file single PR for both of them as very little work is to be done. 
Hey @vibhor98! I'd like to work on oppia.export.cloud_datastore_admin
Hi @mahjong, I've assigned you  `oppia.export.cloud_datastore_admin`. Please go ahead and feel free to file one PR. Thanks!
> Hi @tonadev, I've assigned you `scripts.custom_lint_checks` and `scripts.cut_release_branch`. Please go ahead and file single PR for both of them as very little work is to be done.

@vibhor98 But isn't scripts.custom_lint_checks complete? Because it's in needs to be done section but also in completed section
Took a stab at documenting oppia.main. I've filed a PR  Main documentation #5704 . It's pending review,
Hi @tonadev, No it isn't complete as it might be changed after the file was completed before. You can verify by running-  `pylint --disable=all --enable=missing-docstring scripts/custom_lint_checks.py` and then please add docstrings wherever required. Thanks!
Sorry for the confusion @tonadev, the list wasn't up to date. I've removed the file from the completed section. Thanks!
Hi @seanlip, would you review my pull request.
Hi @tonadev, please note that the file that you've been assigned `custom_lint_checks.py` has been renamed to `pylint_extensions.py`. Thanks!
Hi @vibhor98 , would you review my pull request.
Hi @vibhor98, as you said I filed the changes to my PR (https://github.com/oppia/oppia/pull/5689). PTAL
PS: I have never written docstrings nor documentation
Hi @dchen97, @hemant0308 and @kvaluruk, are you still working on the assigned files? Please note that we need to get this done latest by **Oct 10**. Thanks!  
Hi @seanlip , I'm new here! I have read and signed up the CLA ad willing to contribute to adding docstring to TextInput and Continue .How shall I proceed?
Deassigning @dchen97, @hemant0308 and @kvaluruk due to lack of response! 
Hi @hjhimanshu01, that file has already been taken up. Can you take other files? I've just de-assigned 3 files now. Please feel free to take up any of them. Thanks!  
I want to take oppia.scripts.docstrings_checker
Hi @vibhor98 Could you assign me any file not assigned to anyone yet?
Hi @BinnyDaBin, I've assigned you `core.domain.acl_decorators`. Please go ahead. Thanks! 
Hi @vibhor98, I have signed everything and I'd like to work on  oppia.core.storage.question.gae_models. Could you assign it to me, please?
Hi @yesass, I've assigned you both the files: `core.domain.fs_services` and `core.storage.question.gae_models` as just few lines of docstrings need to be added. Please feel free to file the same PR covering both the files. Thanks!
@vibhor98 - I'm a newbie here and have been directed to this task by @DubeySandeep. I would like to try my hand at this. Are there any particular files you recommend I start with? Go ahead and assign me 1 - 2. Thanks.
Hi @joeyannaphol, I have assigned you to the remaining two files, you can start working.
-  `oppia.jinja_utils`
- `oppia.scripts.build `
Hi I am new here, and I was guided here by @1995YogeshSharma. Are there any files you recommend I start with? :) 
Hi @seritaevelyn, It looks like all files are taken here. I would recommend you to pick any file to work in #5134 and I'll assign that to you.
Hi @joeyannaphol  and @BinnyDaBin, are you still working on the assigned files? Please try to file PR for the specific files by Oct 18 as we need to enable missing-docstrings checks ASAP and these are just few of the last files. Please let us know either way. Thanks!
Hi I'm new here, Can i start working on oppia.core.domain.stats_jobs_one_off ?

Sir @vibhor98  i want to work on scripts.build can i work on it ?
@lioniyon FYI acl_decorators has been completed in #5803 (thanks @dchen97!) 
@yesass, any update on `oppia.core.domain.fs_services` & `oppia.core.storage.question.gae_models`?
Can I be assigned to `oppia.extensions.objects.models.objects`?
@rafalk342, I've assigned you to  `oppia.extensions.objects.models.objects`, you can start working on it. Thanks! :)
De-assigning @yesass and @DiegoCaraballo due to lack of response...
Hi @vibhor98 there are two people assigned to one file oppia.jinja_utils its @import-keshav and @lioniyon, and I have completed it and make pr so whats about @lioniyon. there will get merge conflicts. Did @lioniyon complete it?


Hi @import-keshav, you can go ahead and feel free to make a PR for that. @lioniyon has taken a very long time. De-assigning @lioniyon ... 
Hi! I started to work on `core.jobs`. I wanted to know if there is someone else was assigned to it.
Thanks!
Hi @YashJipkate, I've assigned you. Please go ahead! Thanks! 

Resolving patch:
diff --git a/core/jobs.py b/core/jobs.py
--- a/core/jobs.py
+++ b/core/jobs.py
@@ -101,6 +101,11 @@ class BaseJobManager(object):
     """
     @classmethod
     def _is_abstract(cls):
+        """Checks if the job is created using the abstract base manager class.
+
+        Returns:
+            bool. Whether the job is created using abstract base manager class.
+        """
         return cls in ABSTRACT_BASE_CLASSES
 
     @classmethod
@@ -120,6 +125,12 @@ def create_new(cls):
                 'manager class %s, which is not allowed.' % cls.__name__)
 
         def _create_new_job():
+            """Creates a new job by generating a unique id and inserting
+            it into the model.
+
+            Returns:
+                str. The unique job id.
+            """
             job_id = job_models.JobModel.get_new_id(cls.__name__)
             job_models.JobModel(id=job_id, job_type=cls.__name__).put()
             return job_id
@@ -484,34 +495,83 @@ def _require_correct_job_type(cls, job_type):
 
     @classmethod
     def _pre_enqueue_hook(cls, job_id):
+        """A hook or a callback function triggered before enqueuing a job.
+
+        Args:
+            job_id: str. The unique ID of the job which is to be enqueued.
+        """
         pass
 
     @classmethod
     def _post_enqueue_hook(cls, job_id):
+        """A hook or a callback function triggered after enqueuing a job.
+
+        Args:
+            job_id: str. The unique ID of the job which was enqueued.
+        """
         pass
 
     @classmethod
     def _pre_start_hook(cls, job_id):
+        """A hook or a callback function triggered before marking a job
+        as started.
+
+        Args:
+            job_id: str. The unique ID of the job to be marked as started.
+        """
         pass
 
     @classmethod
     def _post_start_hook(cls, job_id):
+        """A hook or a callback function triggered after marking a job as
+        started.
+
+        Args:
+            job_id: str. The unique ID of the job marked as started.
+        """
         pass
 
     @classmethod
     def _post_completed_hook(cls, job_id):
+        """A hook or a callback function triggered after marking a job as
+        completed.
+
+        Args:
+            job_id: str. The unique ID of the job marked as completed.
+        """
         pass
 
     @classmethod
     def _post_failure_hook(cls, job_id):
+        """A hook or a callback function triggered after marking a job as
+        failed.
+
+        Args:
+            job_id: str. The unique ID of the job marked as failed.
+        """
         pass
 
     @classmethod
     def _pre_cancel_hook(cls, job_id, cancel_message):
+        """A hook or a callback function triggered before marking a job as
+        cancelled.
+
+        Args:
+            job_id: str. The unique ID of the job to be marked as cancelled.
+            cancel_message: str. The message to be displayed before
+                cancellation.
+        """
         pass
 
     @classmethod
     def _post_cancel_hook(cls, job_id, cancel_message):
+        """A hook or a callback function triggered after marking a job as
+        cancelled.
+
+        Args:
+            job_id: str. The unique ID of the job marked as cancelled.
+            cancel_message: str. The message to be displayed after cancellation.
+        """
         pass
 
 
@@ -814,6 +874,14 @@ def _real_enqueue(cls, job_id, queue_name, additional_job_params):
 
     @classmethod
     def _pre_cancel_hook(cls, job_id, cancel_message):
+        """A hook or a callback function triggered before marking a job as
+        cancelled.
+
+        Args:
+            job_id: str. The unique ID of the job to be marked as cancelled.
+            cancel_message: str. The message to be displayed before
+                cancellation.
+        """
         metadata = cls.get_metadata(job_id)
         root_pipeline_id = metadata[cls._OUTPUT_KEY_ROOT_PIPELINE_ID]
         pipeline.Pipeline.from_id(root_pipeline_id).abort(cancel_message)
@@ -1000,14 +1068,33 @@ def _entity_created_before_job_queued(entity):
 
     @classmethod
     def _post_completed_hook(cls, job_id):
+        """A hook or a callback function triggered after marking a job as
+        completed.
+
+        Args:
+            job_id: str. The unique ID of the job marked as completed.
+        """
         cls._get_continuous_computation_class().on_batch_job_completion()
 
     @classmethod
     def _post_cancel_hook(cls, job_id, cancel_message):
+        """A hook or a callback function triggered after marking a job as
+        cancelled.
+
+        Args:
+            job_id: str. The unique ID of the job marked as cancelled.
+            cancel_message: str. The message to be displayed after cancellation.
+        """
         cls._get_continuous_computation_class().on_batch_job_canceled()
 
     @classmethod
     def _post_failure_hook(cls, job_id):
+        """A hook or a callback function triggered after marking a job as
+        failed.
+
+        Args:
+            job_id: str. The unique ID of the job marked as failed.
+        """
         cls._get_continuous_computation_class().on_batch_job_failure()
 
 
@@ -1237,6 +1324,13 @@ def _get_active_realtime_index(cls):
             str. The active realtime layer index of this class.
         """
         def _get_active_realtime_index_transactional():
+            """Finds the Continous Computation Model corresponding to this
+            class type or inserts it in the database if not found and extracts
+            the active realtime layer index.
+
+            Returns:
+                str. The active realtime layer index of this class.
+            """
             cc_model = job_models.ContinuousComputationModel.get(
                 cls.__name__, strict=False)
             if cc_model is None:
@@ -1289,6 +1383,9 @@ def _switch_active_realtime_class(cls):
         computation.
         """
         def _switch_active_realtime_class_transactional():
+            """Retrieves currently-active realtime layer index, switches it
+            and inserts the new model to the database.
+            """
             cc_model = job_models.ContinuousComputationModel.get(
                 cls.__name__)
             cc_model.active_realtime_layer_index = (
@@ -1469,6 +1566,10 @@ def _process_job_completion_and_return_status(cls):
         cls._clear_inactive_realtime_layer(datetime.datetime.utcnow())
 
         def _update_last_finished_time_transactional():
+            """Updates the time at which a batch job for this computation was
+            last completed or failed, in milliseconds since the epoch, setting
+            it to the current time.
+            """
             cc_model = job_models.ContinuousComputationModel.get(cls.__name__)
             cc_model.last_finished_msec = utils.get_current_time_in_millisecs()
             cc_model.put()


Test patch: