• 
      

    Fix up docstrings in rbtools/clients/

    Review Request #9884 — Created April 21, 2018 and submitted

    Information

    RBTools
    release-1.0.x
    15e7b72...

    Reviewers

    This change fixes up all the docstrings for the various clients to match
    our modern style, and to be consistent across the different tools. Whew.

    • Ran unit tests.
    • Ran pydocstyle.
    Description From Last Updated

    , optional

    chipx86chipx86

    , optional

    chipx86chipx86

    "Return"

    chipx86chipx86

    "command line" is more common these days than "command-line". I only see "command-line" in terms of "command-line interface," but even …

    chipx86chipx86

    We don't need to say "The 'revisions' argument" here.

    chipx86chipx86

    Let's use double backticks for the examples.

    chipx86chipx86

    This will parse wrong, due to the indentation. In other places we do: A dictionary with the following keys: ``base`` …

    chipx86chipx86

    I don't think we want to reference git here.

    chipx86chipx86

    We should probably document these. Certainly which are required and which are not. Also, it mentions commit_id but that's not …

    chipx86chipx86

    :command: for patch

    chipx86chipx86

    "filenames"

    chipx86chipx86

    Can you make the patch -pX a literal?

    chipx86chipx86

    I had to look up how this was actually provided. At first I thought a dictionary, but then I saw …

    chipx86chipx86

    , optional

    chipx86chipx86

    , optional

    chipx86chipx86

    Maybe reference parse_revision_spec here?

    chipx86chipx86

    Same note as above with the author info.

    chipx86chipx86

    Let's get rid of "RB" here. Nothing else really references that.

    chipx86chipx86

    This isn't showing as optional in the function parameters.

    chipx86chipx86

    These all need , optional

    chipx86chipx86

    "Return"

    chipx86chipx86

    This isn't optional in the function parameters.

    chipx86chipx86

    "Windows"

    chipx86chipx86

    "ClearCase"

    chipx86chipx86

    I don't know how this is going to look, but it's probably not going to be a suitable list. Can …

    chipx86chipx86

    Can you fix the missing space in this comment while here, and change to "ClearCase"?

    chipx86chipx86

    "Return"

    chipx86chipx86

    Mind changing this while here to not override _? I feel like this is going to bite us someday. A …

    chipx86chipx86

    This can be a list as well.

    chipx86chipx86

    Extra space before the ending paren.

    chipx86chipx86

    , optional

    chipx86chipx86

    "Return"

    chipx86chipx86

    Missing the full module path.

    chipx86chipx86

    Is this a SHA?

    chipx86chipx86

    , optional

    chipx86chipx86

    Can you make the tuple example a literal?

    chipx86chipx86

    list of unicode?

    chipx86chipx86

    This isn't listed as optional in the function params.

    chipx86chipx86

    "Perforce"

    chipx86chipx86

    "Perforce"

    chipx86chipx86

    Can you use literals for these?

    chipx86chipx86

    "Perforce"

    chipx86chipx86

    "Can you use a literal here?"

    chipx86chipx86

    Missing a type and , optional

    chipx86chipx86

    Missing a period.

    chipx86chipx86

    "Perforce"

    chipx86chipx86

    , optional

    chipx86chipx86

    , optional

    chipx86chipx86

    "Return"

    chipx86chipx86

    "URL"

    chipx86chipx86

    Can you use literals for the quoted bits? Also, "URL".

    chipx86chipx86

    "URLs"

    chipx86chipx86

    "extraction"

    chipx86chipx86

    "extraction"

    chipx86chipx86

    "extraction"

    chipx86chipx86

    "extraction"

    chipx86chipx86

    "exclude_patterns" isn't documented.

    chipx86chipx86

    Missing a name.

    chipx86chipx86

    These should probably be like: ``//path/to/file`` Description... ``//path/to/dir...``` Description...

    chipx86chipx86

    This isn't optional in the function params.

    chipx86chipx86

    "Perforce"

    chipx86chipx86

    "Return"

    chipx86chipx86

    This should probably be removed.

    chipx86chipx86

    "Return"

    chipx86chipx86

    These aren't optional in the function params.

    chipx86chipx86

    We shouldn't use "r". Instead, we need to fix the example.

    chipx86chipx86

    The example diffs should all be indented 4 spaces with a blank line on either side, to turn them into …

    chipx86chipx86

    :command:

    chipx86chipx86

    This isn't optional in the function params.

    chipx86chipx86

    We can nix "RB", or change it to "Review Board."

    chipx86chipx86

    E501 line too long (80 > 79 characters)

    reviewbotreviewbot

    We should use :command: here as well.

    chipx86chipx86

    :py:meth:

    chipx86chipx86

    rbtools.clients.errors.MergeError

    chipx86chipx86

    rbtools.clients.errors.PushError

    chipx86chipx86

    rbtools.clients.errors.AmendError

    chipx86chipx86

    Missing a "Returns."

    chipx86chipx86

    , optional

    chipx86chipx86

    :command: around "cleartool"?

    chipx86chipx86

    Can we rewrite this? It's not clear. Maybe something like: This will split a version path, pulling out the branch …

    chipx86chipx86

    Like above, this wording isn't ideal. How about: """Construct an extended path from a file path and version identifier. This …

    chipx86chipx86

    How about "Construct a revisioned path from a branch path and version identifier."

    chipx86chipx86

    How about "Return extended paths for all modifications in a changeset."

    chipx86chipx86

    Can we make this a bit more English-sounding?

    chipx86chipx86

    Can we use :command: around "cleartool lsX"?

    chipx86chipx86

    We should use :command: for "cvs diff".

    chipx86chipx86

    Can we make the refs/heads/ a literal?

    chipx86chipx86

    :command: for "git config"

    chipx86chipx86

    :command: for "svn diff".

    chipx86chipx86

    Let's use :command: around git-svn and git-p4.

    chipx86chipx86

    :command: here as well.

    chipx86chipx86

    And on these.

    chipx86chipx86

    rbtools.clients.errors.AmendError

    chipx86chipx86

    Let's use :envvar around $EDITOR.

    chipx86chipx86

    rbtools.clients.errors.MergeError

    chipx86chipx86

    rbtools.clients.errors.PushError

    chipx86chipx86

    This should specify that None will be returned if the path could not be found.

    chipx86chipx86

    Let's use :command: around "p4 info".

    chipx86chipx86

    :command: around "p4"

    chipx86chipx86

    :command: around "p4"

    chipx86chipx86

    :command: around "p4"

    chipx86chipx86

    Should be "Returns" and then "Raises"

    chipx86chipx86

    "Returns" and then "Raises"

    chipx86chipx86

    "Returns" and then "Raises"

    chipx86chipx86

    "Returns" and then "Raises"

    chipx86chipx86

    The - should be a _

    chipx86chipx86

    rbtools.clients.errors.AmendError

    chipx86chipx86

    Need a double :: in the preceding paragraphs, or this will appear as quoted text (for like e-mails and such).

    chipx86chipx86

    "Returns" and then "Raises"

    chipx86chipx86

    If you are running flake8 with the flake8-docstrings package, we should be able to have these both in flake8.ignore.

    brenniebrennie
    chipx86
    1. Starting off with a review of the base client code, as many of these comments apply to the subclasses as well.

    2. rbtools/clients/__init__.py (Diff revision 1)
       
       
       
       
       
      Show all issues

      , optional

    3. rbtools/clients/__init__.py (Diff revision 1)
       
       
       
       
       
      Show all issues

      , optional

    4. rbtools/clients/__init__.py (Diff revision 1)
       
       
      Show all issues

      "Return"

    5. rbtools/clients/__init__.py (Diff revision 1)
       
       
      Show all issues

      "command line" is more common these days than "command-line". I only see "command-line" in terms of "command-line interface," but even the articles with that use "command line" in other contexts.

    6. rbtools/clients/__init__.py (Diff revision 1)
       
       
      Show all issues

      We don't need to say "The 'revisions' argument" here.

    7. rbtools/clients/__init__.py (Diff revision 1)
       
       
      Show all issues

      Let's use double backticks for the examples.

    8. rbtools/clients/__init__.py (Diff revision 1)
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
      Show all issues

      This will parse wrong, due to the indentation. In other places we do:

      A dictionary with the following keys:
      
      ``base`` (:py:class:`unicode`):
          A revision ...
      
      ``tip`` (:py:class:`unicode`):
          ...
      
    9. rbtools/clients/__init__.py (Diff revision 1)
       
       
       
      Show all issues

      I don't think we want to reference git here.

    10. rbtools/clients/__init__.py (Diff revision 1)
       
       
       
      Show all issues

      We should probably document these. Certainly which are required and which are not.

      Also, it mentions commit_id but that's not included in the return statement.

    11. rbtools/clients/__init__.py (Diff revision 1)
       
       
      Show all issues

      :command: for patch

    12. rbtools/clients/__init__.py (Diff revision 1)
       
       
      Show all issues

      "filenames"

    13. rbtools/clients/__init__.py (Diff revision 1)
       
       
      Show all issues

      Can you make the patch -pX a literal?

    14. rbtools/clients/__init__.py (Diff revision 1)
       
       
       
       
      Show all issues

      I had to look up how this was actually provided. At first I thought a dictionary, but then I saw that review_request.get_submitter() was passed in. Maybe we should just make this take a dictionary with fullname and email keys and change the one call site?

      1. That sounds nice but not for this change.

    15. rbtools/clients/__init__.py (Diff revision 1)
       
       
      Show all issues

      , optional

    16. rbtools/clients/__init__.py (Diff revision 1)
       
       
      Show all issues

      , optional

    17. rbtools/clients/__init__.py (Diff revision 1)
       
       
       
      Show all issues

      Maybe reference parse_revision_spec here?

    18. rbtools/clients/__init__.py (Diff revision 1)
       
       
       
       
      Show all issues

      Same note as above with the author info.

    19. rbtools/clients/__init__.py (Diff revision 1)
       
       
      Show all issues

      Let's get rid of "RB" here. Nothing else really references that.

    20. rbtools/clients/__init__.py (Diff revision 1)
       
       
       
      Show all issues

      This isn't showing as optional in the function parameters.

    21. rbtools/clients/__init__.py (Diff revision 1)
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
      Show all issues

      These all need , optional

    22. rbtools/clients/bazaar.py (Diff revision 1)
       
       
      Show all issues

      "Return"

    23. 
        
    chipx86
    1. 
        
    2. rbtools/clients/bazaar.py (Diff revision 1)
       
       
       
       
      Show all issues

      This isn't optional in the function parameters.

    3. rbtools/clients/clearcase.py (Diff revision 1)
       
       
      Show all issues

      "Windows"

    4. rbtools/clients/clearcase.py (Diff revision 1)
       
       
      Show all issues

      "ClearCase"

    5. rbtools/clients/clearcase.py (Diff revision 1)
       
       
       
       
      Show all issues

      I don't know how this is going to look, but it's probably not going to be a suitable list. Can you fix this up?

    6. rbtools/clients/clearcase.py (Diff revision 1)
       
       
      Show all issues

      Can you fix the missing space in this comment while here, and change to "ClearCase"?

    7. rbtools/clients/cvs.py (Diff revision 1)
       
       
      Show all issues

      "Return"

    8. rbtools/clients/git.py (Diff revision 1)
       
       
      Show all issues

      Mind changing this while here to not override _? I feel like this is going to bite us someday. A [0] should be sufficient.

    9. rbtools/clients/git.py (Diff revision 1)
       
       
      Show all issues

      This can be a list as well.

    10. rbtools/clients/git.py (Diff revision 1)
       
       
      Show all issues

      Extra space before the ending paren.

    11. rbtools/clients/git.py (Diff revision 1)
       
       
       
       
       
       
       
      Show all issues

      , optional

    12. rbtools/clients/git.py (Diff revision 1)
       
       
      Show all issues

      "Return"

    13. rbtools/clients/mercurial.py (Diff revision 1)
       
       
      Show all issues

      Missing the full module path.

    14. rbtools/clients/mercurial.py (Diff revision 1)
       
       
      Show all issues

      Is this a SHA?

    15. rbtools/clients/mercurial.py (Diff revision 1)
       
       
       
       
       
       
       
      Show all issues

      , optional

    16. rbtools/clients/mercurial.py (Diff revision 1)
       
       
      Show all issues

      Can you make the tuple example a literal?

    17. rbtools/clients/mercurial.py (Diff revision 1)
       
       
      Show all issues

      list of unicode?

    18. rbtools/clients/mercurial.py (Diff revision 1)
       
       
       
      Show all issues

      This isn't listed as optional in the function params.

    19. rbtools/clients/perforce.py (Diff revision 1)
       
       
       
       
       
       
      Show all issues

      "Perforce"

    20. rbtools/clients/perforce.py (Diff revision 1)
       
       
      Show all issues

      "Perforce"

    21. rbtools/clients/perforce.py (Diff revision 1)
       
       
      Show all issues

      Can you use literals for these?

    22. rbtools/clients/perforce.py (Diff revision 1)
       
       
      Show all issues

      "Perforce"

    23. rbtools/clients/perforce.py (Diff revision 1)
       
       
      Show all issues

      "Can you use a literal here?"

    24. rbtools/clients/perforce.py (Diff revision 1)
       
       
      Show all issues

      Missing a type and , optional

    25. rbtools/clients/perforce.py (Diff revision 1)
       
       
      Show all issues

      Missing a period.

    26. rbtools/clients/perforce.py (Diff revision 1)
       
       
      Show all issues

      "Perforce"

    27. rbtools/clients/perforce.py (Diff revision 1)
       
       
      Show all issues

      , optional

    28. rbtools/clients/perforce.py (Diff revision 1)
       
       
      Show all issues

      , optional

    29. rbtools/clients/perforce.py (Diff revision 1)
       
       
      Show all issues

      "Return"

    30. rbtools/clients/perforce.py (Diff revision 1)
       
       
      Show all issues

      "URL"

    31. rbtools/clients/perforce.py (Diff revision 1)
       
       
       
       
       
      Show all issues

      Can you use literals for the quoted bits?

      Also, "URL".

    32. rbtools/clients/perforce.py (Diff revision 1)
       
       
      Show all issues

      "URLs"

    33. rbtools/clients/perforce.py (Diff revision 1)
       
       
      Show all issues

      "extraction"

    34. rbtools/clients/perforce.py (Diff revision 1)
       
       
      Show all issues

      "extraction"

    35. rbtools/clients/perforce.py (Diff revision 1)
       
       
      Show all issues

      "extraction"

    36. rbtools/clients/perforce.py (Diff revision 1)
       
       
      Show all issues

      "extraction"

    37. rbtools/clients/perforce.py (Diff revision 1)
       
       
      Show all issues

      "exclude_patterns" isn't documented.

    38. rbtools/clients/perforce.py (Diff revision 1)
       
       
      Show all issues

      Missing a name.

    39. rbtools/clients/perforce.py (Diff revision 1)
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
      Show all issues

      These should probably be like:

      ``//path/to/file``
          Description...
      
      ``//path/to/dir...```
          Description...
      
    40. rbtools/clients/perforce.py (Diff revision 1)
       
       
      Show all issues

      This isn't optional in the function params.

    41. rbtools/clients/perforce.py (Diff revision 1)
       
       
      Show all issues

      "Perforce"

    42. rbtools/clients/plastic.py (Diff revision 1)
       
       
      Show all issues

      "Return"

    43. rbtools/clients/plastic.py (Diff revision 1)
       
       
      Show all issues

      This should probably be removed.

    44. rbtools/clients/svn.py (Diff revision 1)
       
       
      Show all issues

      "Return"

    45. rbtools/clients/svn.py (Diff revision 1)
       
       
       
       
       
       
       
      Show all issues

      These aren't optional in the function params.

    46. rbtools/clients/svn.py (Diff revision 1)
       
       
      Show all issues

      We shouldn't use "r". Instead, we need to fix the example.

    47. rbtools/clients/svn.py (Diff revision 1)
       
       
       
       
       
       
       
       
       
      Show all issues

      The example diffs should all be indented 4 spaces with a blank line on either side, to turn them into code blocks. The "\n" will be retained.

    48. rbtools/clients/svn.py (Diff revision 1)
       
       
      Show all issues

      :command:

    49. rbtools/clients/svn.py (Diff revision 1)
       
       
       
      Show all issues

      This isn't optional in the function params.

    50. rbtools/clients/svn.py (Diff revision 1)
       
       
      Show all issues

      We can nix "RB", or change it to "Review Board."

    51. 
        
    david
    Review request changed
    Commit:
    ac9f8ca0aa0bd0e861596612c10c88c1fc1100c6
    79a07421e81c1210409753439cc3efea58ffaf62

    Checks run (1 failed, 1 succeeded)

    flake8 failed.
    JSHint passed.

    flake8

    david
    chipx86
    1. A few wording suggestions for ClearCase, a sprinkling of ReST roles (like :command:), and fixes for bad error class paths. Mostly pretty trivial things.

    2. rbtools/clients/__init__.py (Diff revision 3)
       
       
      Show all issues

      We should use :command: here as well.

    3. rbtools/clients/__init__.py (Diff revision 3)
       
       
      Show all issues

      :py:meth:

    4. rbtools/clients/__init__.py (Diff revision 3)
       
       
      Show all issues

      rbtools.clients.errors.MergeError

    5. rbtools/clients/__init__.py (Diff revision 3)
       
       
      Show all issues

      rbtools.clients.errors.PushError

    6. rbtools/clients/__init__.py (Diff revision 3)
       
       
       

      Not something that needs to be addressed in this change, but we have different parameter names in different methods for this same type of argument. We should fix that.

    7. rbtools/clients/__init__.py (Diff revision 3)
       
       
      Show all issues

      rbtools.clients.errors.AmendError

    8. rbtools/clients/__init__.py (Diff revision 3)
       
       
       
       
       
      Show all issues

      Missing a "Returns."

    9. rbtools/clients/bazaar.py (Diff revision 3)
       
       
      Show all issues

      , optional

    10. rbtools/clients/clearcase.py (Diff revision 3)
       
       
      Show all issues

      :command: around "cleartool"?

    11. rbtools/clients/clearcase.py (Diff revision 3)
       
       
       
       
      Show all issues

      Can we rewrite this? It's not clear. Maybe something like:

      This will split a version path, pulling out the branch and version. A special version value of ``CHECKEDOUT`` represents the latest version of a file, similar to ``HEAD`` in many other types of repositories.
      
    12. rbtools/clients/clearcase.py (Diff revision 3)
       
       
       
       
       
       
      Show all issues

      Like above, this wording isn't ideal. How about:

      """Construct an extended path from a file path and version identifier.
      
      This will construct a path in the form of ``path@version``. If the
      version is the special value ``CHECKEDOUT``, only the path will be
      returned.
      
      ...
      """
      
    13. rbtools/clients/clearcase.py (Diff revision 3)
       
       
      Show all issues

      How about "Construct a revisioned path from a branch path and version identifier."

    14. rbtools/clients/clearcase.py (Diff revision 3)
       
       
      Show all issues

      How about "Return extended paths for all modifications in a changeset."

    15. rbtools/clients/clearcase.py (Diff revision 3)
       
       
       
      Show all issues

      Can we make this a bit more English-sounding?

    16. rbtools/clients/clearcase.py (Diff revision 3)
       
       
      Show all issues

      Can we use :command: around "cleartool lsX"?

    17. rbtools/clients/cvs.py (Diff revision 3)
       
       
      Show all issues

      We should use :command: for "cvs diff".

    18. rbtools/clients/git.py (Diff revision 3)
       
       
      Show all issues

      Can we make the refs/heads/ a literal?

    19. rbtools/clients/git.py (Diff revision 3)
       
       
      Show all issues

      :command: for "git config"

    20. rbtools/clients/git.py (Diff revision 3)
       
       
      Show all issues

      :command: for "svn diff".

    21. rbtools/clients/git.py (Diff revision 3)
       
       
      Show all issues

      Let's use :command: around git-svn and git-p4.

    22. rbtools/clients/git.py (Diff revision 3)
       
       
      Show all issues

      :command: here as well.

    23. rbtools/clients/git.py (Diff revision 3)
       
       
      Show all issues

      And on these.

    24. rbtools/clients/git.py (Diff revision 3)
       
       
      Show all issues

      rbtools.clients.errors.AmendError

    25. rbtools/clients/git.py (Diff revision 3)
       
       
      Show all issues

      Let's use :envvar around $EDITOR.

    26. rbtools/clients/git.py (Diff revision 3)
       
       
      Show all issues

      rbtools.clients.errors.MergeError

    27. rbtools/clients/git.py (Diff revision 3)
       
       
      Show all issues

      rbtools.clients.errors.PushError

    28. rbtools/clients/git.py (Diff revision 3)
       
       
       
      Show all issues

      This should specify that None will be returned if the path could not be found.

    29. rbtools/clients/perforce.py (Diff revision 3)
       
       
      Show all issues

      Let's use :command: around "p4 info".

    30. rbtools/clients/perforce.py (Diff revision 3)
       
       
      Show all issues

      :command: around "p4"

    31. rbtools/clients/perforce.py (Diff revision 3)
       
       
      Show all issues

      :command: around "p4"

    32. rbtools/clients/perforce.py (Diff revision 3)
       
       
      Show all issues

      :command: around "p4"

    33. rbtools/clients/perforce.py (Diff revision 3)
       
       
       
       
       
       
       
       
       
      Show all issues

      Should be "Returns" and then "Raises"

    34. rbtools/clients/perforce.py (Diff revision 3)
       
       
       
       
       
       
       
       
       
       
      Show all issues

      "Returns" and then "Raises"

    35. rbtools/clients/perforce.py (Diff revision 3)
       
       
       
       
       
       
       
       
       
       
      Show all issues

      "Returns" and then "Raises"

    36. rbtools/clients/perforce.py (Diff revision 3)
       
       
       
       
       
       
       
       
       
      Show all issues

      "Returns" and then "Raises"

    37. rbtools/clients/perforce.py (Diff revision 3)
       
       
      Show all issues

      The - should be a _

    38. rbtools/clients/perforce.py (Diff revision 3)
       
       
      Show all issues

      rbtools.clients.errors.AmendError

    39. rbtools/clients/svn.py (Diff revision 3)
       
       
       
       
       
       
       
       
       
       
       
       
       
       
      Show all issues

      Need a double :: in the preceding paragraphs, or this will appear as quoted text (for like e-mails and such).

    40. rbtools/clients/svn.py (Diff revision 3)
       
       
       
       
       
       
       
       
      Show all issues

      "Returns" and then "Raises"

    41. 
        
    david
    brennie
    1. 
        
    2. setup.cfg (Diff revision 4)
       
       
       
      Show all issues

      If you are running flake8 with the flake8-docstrings package, we should be able to have these both in flake8.ignore.

      1. This isn't something I use. If you want to add it, go ahead--I don't have time to install it and test it now.

    3. 
        
    chipx86
    1. Ship It!
    2. 
        
    david
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-1.0.x (e982800)