rez icon indicating copy to clipboard operation
rez copied to clipboard

consolidate docstring style

Open chadrik opened this issue 10 years ago • 11 comments

There are a couple of different docstring formats being used in rez right now, we should decide on a convention and stick to it.

First, we need to decide what documentation generator we will use as that will dictate the available styles. I think that sphinx is the obvious choice, because it is the only actively maintained documentation generator for python out there. I've used epydoc, and it was easy to use, but it was already pretty outdated 5 years ago, so I would not bet on that horse now. Doxygen was designed for C++ and its python support is just a hack on top of that. IIRC, it could not do python introspection on live python objects like sphinx and epydoc, it could just parse python code.

So, if sphinx is the choice we have 3 styles to choose from: native, numpy, and google. here's a sphinx extension that adds supports for the latter 2: http://sphinx-doc.org/latest/ext/napoleon.html

Here they are for your simple viewing pleasure:

sphinx

def func(arg1, arg2):
    """Summary line.

    Extended description of function.

    :param arg1: Description of arg1
    :type arg1: int
    :param arg2: Description of arg2
    :type arg2: str
    :returns: Description of return value
    :rtype: bool

    """
    return True

numpy

def func(arg1, arg2):
    """Summary line.

    Extended description of function.

    Parameters
    ----------
    arg1 : int
        Description of arg1
    arg2 : str
        Description of arg2

    Returns
    -------
    bool
        Description of return value

    """
    return True

google

def func(arg1, arg2):
    """Summary line.

    Extended description of function.

    Args:
        arg1 (int): Description of arg1
        arg2 (str): Description of arg2

    Returns:
        bool: Description of return value

    """
    return True

A note on sphinx:

If you have not used sphinx before, but you have used other documentation generators like epydoc, it might be confusing at first. It is important to know that sphinx is designed in layers: the primary layer is a pure restructuredText parser, which translates an rst file into rich output like html, usually one html file per rst file. Hence, most of the sphinx documentation covers writing restructuredText documents from scratch and has nothing to say about generating API documentation from source code. That is handled by a set of extensions (namely, the autodoc extension) which generate rst documents from python modules and their docstrings, which are then converted into rich output as a second pass.

chadrik avatar Mar 05 '14 18:03 chadrik

I don't mind if the doc type is doxygen or sphinx - what I care about is compact comments. For that reason, I really dislike the numpy style. My preference is for google-style, sans empty lines even better.

A

On Wed, Mar 5, 2014 at 10:07 AM, Chad Dombrova [email protected]:

There are a couple of different docstring formats being used in rez right now, we should decide on a convention and stick to it.

First, we need to decide what documentation generator we will use as that will dictate the available styles. I think that sphinx is the obvious choice, because it is the only actively maintained documentation generator for python out there. I've used epydoc, and it was easy to use, but it was already pretty outdated 5 years ago, so I would not bet on that horse now. Doxygen was designed for C++ and its python support is just a hack on top of that. IIRC, it could not do python introspection on live python objects like sphinx and epydoc, it could just parse python code.

So, if sphinx is the choice we have 3 styles to choose from: native, numpy, and google. here's a sphinx extension that adds supports for the latter 2: http://sphinx-doc.org/latest/ext/napoleon.html

Here they are for your simple viewing pleasure:

sphinx

def func(arg1, arg2): """Summary line. Extended description of function. :param arg1: Description of arg1 :type arg1: int :param arg2: Description of arg2 :type arg2: str :returns: Description of return value :rtype: bool """ return True

numpy

def func(arg1, arg2): """Summary line. Extended description of function. Parameters ---------- arg1 : int Description of arg1 arg2 : str Description of arg2 Returns ------- bool Description of return value """ return True

google

def func(arg1, arg2): """Summary line. Extended description of function. Args: arg1 (int): Description of arg1 arg2 (str): Description of arg2 Returns: bool: Description of return value """ return True

A note on sphinx:

If you have not used sphinx before, but you have used other documentation generators like epydoc, it might be confusing at first. It is important to know that sphinx is designed in layers: the primary layer is a pure restructuredText parser, which translates an rst file into rich output like html, usually one html file per rst file. Hence, most of the sphinx documentation covers writing restructuredText documents from scratch and has nothing to say about generating API documentation from source code. That is handled by a set of extensions (namely, the autodoc extension) which generate rst documents from python modules and their docstrings, which are then converted into rich output as a second pass.

Reply to this email directly or view it on GitHubhttps://github.com/nerdvegas/rez/issues/51 .

nerdvegas avatar Mar 05 '14 23:03 nerdvegas

google style is fine with me, but the empty lines are required by the restructuredText parser (except for the last one).

chadrik avatar Mar 05 '14 23:03 chadrik

Ok, then shall we agree on Googly Sphynx, with no trailing empty line? If so I will start using this on new comments, and gradually switch existing doxygen styled comments over.

On Wed, Mar 5, 2014 at 3:26 PM, Chad Dombrova [email protected]:

google style is fine with me, but the empty lines are required by the restructuredText parser (except for the last one).

Reply to this email directly or view it on GitHubhttps://github.com/nerdvegas/rez/issues/51#issuecomment-36807692 .

nerdvegas avatar Mar 05 '14 23:03 nerdvegas

sounds good.

chadrik avatar Mar 06 '14 02:03 chadrik

If there are no objections, I'll look at getting it hooked up to readthedocs.org so they are easily accessible etc.

On 6 March 2014 13:24, Chad Dombrova [email protected] wrote:

sounds good.

Reply to this email directly or view it on GitHubhttps://github.com/nerdvegas/rez/issues/51#issuecomment-36818641 .

mstreatfield avatar Mar 06 '14 02:03 mstreatfield

I renamed this ticket from 'decide on...' to 'consolidate...' so that we can use it to track the progress of cleaning up our docstrings.

chadrik avatar May 10 '14 23:05 chadrik

Here are some more complete examples of google-style docstrings: http://sphinxcontrib-napoleon.readthedocs.org/en/latest/example_google.html

chadrik avatar May 10 '14 23:05 chadrik

If we still want to conform to this I've run a docstring checker called darglint over master. If we get to the point where all issues are resolved (and the tool turns out to be reliable) we could make it part of the checks for PRs.

Error Codes

I101: The docstring is missing a parameter in the definition.
I102: The docstring contains a parameter not in function.
I103: The docstring parameter type doesn't match function.
I201: The docstring is missing a return from definition.
I202: The docstring has a return not in definition.
I203: The docstring parameter type doesn't match function.
I301: The docstring is missing a yield present in definition.
I302: The docstring has a yield not in definition.
I401: The docstring is missing an exception raised.
I402: The docstring describes an exception not explicitly raised.
I501: The docstring describes a variable which is not defined.
S001: Describes that something went wrong in parsing the docstring.
S002: An argument/exception lacks a description.

The error code scheme is based on the errors from the pycodestyle package. The first letter corresponds to the broad class of error:

I (Interface): Incorrect or incomplete documentation.
S (Style): Errors with documentation style/syntax.

The number in the hundreds narrows the error by location in the docstring:

100: Args section
200: Returns section
300: Yields section
400: Raises section

Report at 62d05f3609e5fe0fd903fdb770abbba89a637dca

It may not be perfect, so expect false positives but for what its worth:

  • [ ] ./rezgui/util.py:create_pane:12: S001: s Unable to parse colon: expected TokenType.COLON but received TokenType.WORD
  • [ ] ./rezgui/util.py:get_icon:52: S001: s Expected blank line after short description, but found TokenType.WORD: 'is'.
  • [ ] ./rezgui/util.py:interp_color:105: I101: - b
  • [ ] ./rezgui/util.py:interp_color:105: I101: - a
  • [ ] ./rezgui/util.py:interp_color:105: I101: - f
  • [ ] ./rezgui/util.py:create_toolbutton:122: I101: - parent

  • [ ] ./rezgui/widgets/TimestampWidget.py:datetime:38: I201: - return

  • [ ] ./rezgui/widgets/ConfiguredSplitter.py:apply_saved_layout:14: I201: - return

  • [ ] ./rezgui/widgets/ContextTableWidget.py:__init__:290: I101: - context_model
  • [ ] ./rezgui/widgets/ContextTableWidget.py:__init__:290: I101: - parent
  • [ ] ./rezgui/widgets/ContextTableWidget.py:current_variant:330: I201: - return
  • [ ] ./rezgui/widgets/ContextTableWidget.py:enter_diff_mode:354: S001: s Expected type, "of", to have "(" and ")" around it or end in colon.
  • [ ] ./rezgui/widgets/ContextTableWidget.py:get_title:390: I201: - return

  • [ ] ./rezgui/widgets/ContextSettingsWidget.py:__init__:36: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.

  • [ ] ./rezgui/widgets/ContextManagerWidget.py:get_title:197: I201: - return

  • [ ] ./rezgui/widgets/VariantVersionsWidget.py:__init__:18: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.

  • [ ] ./rezgui/widgets/ContextEnvironTable.py:set_split_character:31: I101: - ch

  • [ ] ./rezgui/widgets/PackageVersionsTable.py:__init__:12: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rezgui/widgets/PackageVersionsTable.py:select_version:46: I101: - version_range
  • [ ] ./rezgui/widgets/PackageVersionsTable.py:select_version:46: I201: - return

  • [ ] ./rezgui/widgets/PackageLoadingWidget.py:set_packages:26: S001: s Expected blank line after short description, but found TokenType.WORD: 'are'.
  • [ ] ./rezgui/widgets/PackageLoadingWidget.py:set_loader_swap_delay:31: S001: s Expected blank line after short description, but found TokenType.WORD: 'useful'.

  • [ ] ./rezgui/dialogs/WriteGraphDialog.py:view_graph:109: I101: - graph_str
  • [ ] ./rezgui/dialogs/WriteGraphDialog.py:view_graph:109: I101: - parent
  • [ ] ./rezgui/dialogs/WriteGraphDialog.py:view_graph:109: I101: - prune_to

  • [ ] ./rezgui/models/ContextModel.py:copy:51: I201: - return
  • [ ] ./rezgui/models/ContextModel.py:is_stale:65: I201: - return
  • [ ] ./rezgui/models/ContextModel.py:is_modified:75: S001: s Expected blank line after short description, but found TokenType.WORD: 'otherwise.'.
  • [ ] ./rezgui/models/ContextModel.py:package_depends_on:81: I101: - name_b
  • [ ] ./rezgui/models/ContextModel.py:package_depends_on:81: I101: - name_a
  • [ ] ./rezgui/models/ContextModel.py:package_depends_on:81: I201: - return
  • [ ] ./rezgui/models/ContextModel.py:context:101: I201: - return
  • [ ] ./rezgui/models/ContextModel.py:filepath:105: I201: - return
  • [ ] ./rezgui/models/ContextModel.py:get_patch_lock:109: I101: - package_name
  • [ ] ./rezgui/models/ContextModel.py:get_patch_lock:109: I201: - return
  • [ ] ./rezgui/models/ContextModel.py:get_lock_requests:115: S001: s Expected blank line after short description, but found TokenType.WORD: 'the'.
  • [ ] ./rezgui/models/ContextModel.py:resolve_context:176: I101: - callback
  • [ ] ./rezgui/models/ContextModel.py:resolve_context:176: I101: - timestamp
  • [ ] ./rezgui/models/ContextModel.py:resolve_context:176: I101: - package_load_callback
  • [ ] ./rezgui/models/ContextModel.py:resolve_context:176: I101: - verbosity
  • [ ] ./rezgui/models/ContextModel.py:resolve_context:176: I101: - buf
  • [ ] ./rezgui/models/ContextModel.py:resolve_context:176: I101: - max_fails
  • [ ] ./rezgui/models/ContextModel.py:can_revert:205: I201: - return
  • [ ] ./rezgui/models/ContextModel.py:set_context:214: I101: - context

  • [ ] ./rezgui/objects/Config.py:value:15: I101: - key
  • [ ] ./rezgui/objects/Config.py:value:15: I101: - type_
  • [ ] ./rezgui/objects/Config.py:value:15: I201: - return
  • [ ] ./rezgui/objects/Config.py:get_string_list:38: I101: - key
  • [ ] ./rezgui/objects/Config.py:get_string_list:38: I201: - return
  • [ ] ./rezgui/objects/Config.py:prepend_string_list:49: I101: - key
  • [ ] ./rezgui/objects/Config.py:prepend_string_list:49: I101: - max_length_key
  • [ ] ./rezgui/objects/Config.py:prepend_string_list:49: I101: - value

  • [ ] ./rezgui/windows/ContextSubWindow.py:diff_with_file:36: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.

  • [ ] ./rez/solver.py:__init__:179: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/solver.py:requires_list:304: S001: s Expected blank line after short description, but found TokenType.WORD: "'requires'".
  • [ ] ./rez/solver.py:__init__:541: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/solver.py:extractable:582: I201: - return
  • [ ] ./rez/solver.py:reduce_by:628: S001: s Expected blank line after short description, but found TokenType.WORD: 'request.'.
  • [ ] ./rez/solver.py:extract:701: I201: - return
  • [ ] ./rez/solver.py:split:732: I401: -r RezSystemError
  • [ ] ./rez/solver.py:__str__:867: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/solver.py:intersect:958: I101: - range_
  • [ ] ./rez/solver.py:reduce_by:998: I101: - package_request
  • [ ] ./rez/solver.py:_get_dependency_order:1114: S001: s Expected blank line after short description, but found TokenType.WORD: 'but'.
  • [ ] ./rez/solver.py:solve:1169: I201: - return
  • [ ] ./rez/solver.py:finalise:1372: S001: s Expected blank line after short description, but found TokenType.WORD: 'packages'.
  • [ ] ./rez/solver.py:__init__:1769: I101: - verbosity
  • [ ] ./rez/solver.py:__init__:1769: I101: - buf
  • [ ] ./rez/solver.py:status:1888: S001: s Unable to parse indent: expected TokenType.INDENT but received TokenType.WORD
  • [ ] ./rez/solver.py:num_solves:1912: I201: - return
  • [ ] ./rez/solver.py:num_fails:1919: S001: s Expected blank line after short description, but found TokenType.WORD: 'Note'.
  • [ ] ./rez/solver.py:cyclic_fail:1926: I201: - return
  • [ ] ./rez/solver.py:resolved_packages:1933: S001: s Expected blank line after short description, but found TokenType.WORD: 'not'.
  • [ ] ./rez/solver.py:solve:1950: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/solver.py:solve_step:2017: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/solver.py:failure_description:2084: I101: - failure_index
  • [ ] ./rez/solver.py:failure_description:2084: I201: - return
  • [ ] ./rez/solver.py:_short_req_str:2277: I101: - package_request
  • [ ] ./rez/solver.py:_short_req_str:2277: I201: - return

  • [ ] ./rez/package_order.py:reorder:29: I202: + return
  • [ ] ./rez/package_order.py:reorder:12: I401: -r NotImplementedError
  • [ ] ./rez/package_order.py:to_pod:60: I201: - return
  • [ ] ./rez/package_order.py:to_pod:89: I201: - return
  • [ ] ./rez/package_order.py:__init__:112: S001: s Unable to parse word: expected TokenType.WORD but received TokenType.NEWLINE
  • [ ] ./rez/package_order.py:to_pod:141: I201: - return
  • [ ] ./rez/package_order.py:to_pod:241: I201: - return
  • [ ] ./rez/package_order.py:to_pod:375: I201: - return

  • [ ] ./rez/package_search.py:get_reverse_dependency_tree:27: I401: -r PackageFamilyNotFoundError
  • [ ] ./rez/package_search.py:__init__:193: I202: + return
  • [ ] ./rez/package_search.py:__init__:336: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/package_search.py:print_search_results:350: I101: - buf

  • [ ] ./rez/rex.py:__init__:182: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/rex.py:get_action_methods:210: S001: s Expected blank line after short description, but found TokenType.WORD: 'methods'.
  • [ ] ./rez/rex.py:get_public_methods:218: S001: s Expected blank line after short description, but found TokenType.WORD: 'API.'.
  • [ ] ./rez/rex.py:get_output:472: I202: + return
  • [ ] ./rez/rex.py:get_output:466: I401: -r NotImplementedError
  • [ ] ./rez/rex.py:prependenv:490: S001: s Expected blank line after short description, but found TokenType.WORD: 'implement'.
  • [ ] ./rez/rex.py:appendenv:495: S001: s Expected blank line after short description, but found TokenType.WORD: 'implement'.
  • [ ] ./rez/rex.py:escape_string:521: I201: - return
  • [ ] ./rez/rex.py:_saferefenv:541: S001: s Expected blank line after short description, but found TokenType.WORD: 'needed'.
  • [ ] ./rez/rex.py:_bind_interactive_rez:551: S001: s Expected blank line after short description, but found TokenType.WORD: 'for'.
  • [ ] ./rez/rex.py:__init__:564: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/rex.py:apply_environ:588: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/rex.py:__str__:748: I201: - return
  • [ ] ./rez/rex.py:__add__:765: I101: - other
  • [ ] ./rez/rex.py:split:805: I101: - delimiter
  • [ ] ./rez/rex.py:literal:875: I101: - value
  • [ ] ./rez/rex.py:literal:875: I201: - return
  • [ ] ./rez/rex.py:expandable:880: I101: - value
  • [ ] ./rez/rex.py:expandable:880: I201: - return
  • [ ] ./rez/rex.py:__init__:963: I101: - manager
  • [ ] ./rez/rex.py:__init__:964: I102: + override_existing_lists
  • [ ] ./rez/rex.py:setdefault:1028: I101: - value
  • [ ] ./rez/rex.py:__init__:1069: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/rex.py:actions:1122: I201: - return
  • [ ] ./rez/rex.py:__getattr__:1125: I101: - attr
  • [ ] ./rez/rex.py:__getattr__:1125: I201: - return
  • [ ] ./rez/rex.py:bind:1130: I101: - obj
  • [ ] ./rez/rex.py:bind:1130: I101: - name
  • [ ] ./rez/rex.py:compile_code:1156: I401: -r RexError
  • [ ] ./rez/rex.py:execute_function:1239: S001: s Expected blank line after short description, but found TokenType.WORD: '@returns'.
  • [ ] ./rez/rex.py:get_output:1265: I101: - style
  • [ ] ./rez/rex.py:get_output:1265: I201: - return

  • [ ] ./rez/util.py:create_executable_script:57: S001: s Expected blank line after short description, but found TokenType.WORD: 'a'.
  • [ ] ./rez/util.py:_get_python_script_files:120: S001: s Expected blank line after short description, but found TokenType.WORD: 'platform.'.
  • [ ] ./rez/util.py:create_forwarding_script:156: I101: - *nargs
  • [ ] ./rez/util.py:create_forwarding_script:156: I101: - filepath
  • [ ] ./rez/util.py:create_forwarding_script:156: I101: - **kwargs
  • [ ] ./rez/util.py:create_forwarding_script:156: I101: - func_name
  • [ ] ./rez/util.py:create_forwarding_script:156: I101: - module
  • [ ] ./rez/util.py:dedup:176: I101: - seq
  • [ ] ./rez/util.py:dedup:176: I301: - yield
  • [ ] ./rez/util.py:find_last_sublist:250: I101: - list_
  • [ ] ./rez/util.py:find_last_sublist:250: I101: - sublist
  • [ ] ./rez/util.py:is_non_string_iterable:271: I101: - arg
  • [ ] ./rez/util.py:is_non_string_iterable:271: I201: - return

  • [ ] ./rez/serialise.py:open_file_for_write:46: I401: -r WindowsError
  • [ ] ./rez/serialise.py:set_objects:192: I301: - yield
  • [ ] ./rez/serialise.py:load_py:212: S001: s Unable to parse colon: expected TokenType.COLON but received TokenType.WORD
  • [ ] ./rez/serialise.py:process_python_objects:282: I101: - filepath
  • [ ] ./rez/serialise.py:process_python_objects:282: I101: - data
  • [ ] ./rez/serialise.py:process_python_objects:282: I401: -r ResourceError
  • [ ] ./rez/serialise.py:load_yaml:389: S001: s Unable to parse colon: expected TokenType.COLON but received TokenType.WORD
  • [ ] ./rez/serialise.py:load_txt:418: S001: s Unable to parse colon: expected TokenType.COLON but received TokenType.WORD

  • [ ] ./rez/resolved_context.py:get_lock_request:92: I101: - weak
  • [ ] ./rez/resolved_context.py:success:316: I201: - return
  • [ ] ./rez/resolved_context.py:set_load_path:352: I101: - path
  • [ ] ./rez/resolved_context.py:__eq__:361: I101: - other
  • [ ] ./rez/resolved_context.py:__eq__:361: I201: - return
  • [ ] ./rez/resolved_context.py:has_graph:387: I201: - return
  • [ ] ./rez/resolved_context.py:get_resolved_package:392: S001: s Expected blank line after short description, but found TokenType.WORD: 'resolve.'.
  • [ ] ./rez/resolved_context.py:copy:397: I201: - return
  • [ ] ./rez/resolved_context.py:get_patched_request:423: S001: s Unable to parse item definition: stream was unexpectedly empty.
  • [ ] ./rez/resolved_context.py:save:534: I101: - path
  • [ ] ./rez/resolved_context.py:write_to_buffer:539: I101: - buf
  • [ ] ./rez/resolved_context.py:load:565: I101: - path
  • [ ] ./rez/resolved_context.py:load:565: I201: - return
  • [ ] ./rez/resolved_context.py:read_from_buffer:573: I101: - identifier_str
  • [ ] ./rez/resolved_context.py:read_from_buffer:573: I101: - buf
  • [ ] ./rez/resolved_context.py:read_from_buffer:573: I201: - return
  • [ ] ./rez/resolved_context.py:get_resolve_diff:579: I101: - other
  • [ ] ./rez/resolved_context.py:get_resolve_diff:579: I401: -r ResolvedContextError
  • [ ] ./rez/resolved_context.py:validate:920: I401: -r ResolvedContextError
  • [ ] ./rez/resolved_context.py:get_environ:929: I101: - parent_environ
  • [ ] ./rez/resolved_context.py:get_environ:929: I201: - return
  • [ ] ./rez/resolved_context.py:get_shell_code:1031: S001: s Parenthetical type must contain at least one word.
  • [ ] ./rez/resolved_context.py:get_actions:1045: S001: s Expected blank line after short description, but found TokenType.WORD: 'context.'.
  • [ ] ./rez/resolved_context.py:execute_command:1109: I101: - **subprocess_kwargs
  • [ ] ./rez/resolved_context.py:execute_command:1113: I102: + subprocess_kwargs
  • [ ] ./rez/resolved_context.py:execute_rex_code:1140: I101: - **Popen_args
  • [ ] ./rez/resolved_context.py:execute_rex_code:1147: I102: + Popen_args
  • [ ] ./rez/resolved_context.py:execute_shell:1170: I101: - **Popen_args
  • [ ] ./rez/resolved_context.py:execute_shell:1199: I102: + Popen_args

  • [ ] ./rez/package_py_utils.py:expand_requires:157: I101: - *requests
  • [ ] ./rez/package_py_utils.py:expand_requires:158: I102: + requests
  • [ ] ./rez/package_py_utils.py:exec_command:169: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/package_py_utils.py:exec_python:186: I101: - executable
  • [ ] ./rez/package_py_utils.py:exec_python:183: I401: -r InvalidPackageError
  • [ ] ./rez/package_py_utils.py:find_site_python:211: I401: -r InvalidPackageError

  • [ ] ./rez/package_copy.py:copy_package:25: I401: -r PackageCopyError

  • [ ] ./rez/package_repository.py:get_package_repository_types:13: I201: - return
  • [ ] ./rez/package_repository.py:package_loading:45: S001: s Expected blank line after short description, but found TokenType.WORD: 'package,'.
  • [ ] ./rez/package_repository.py:name:70: I401: -r NotImplementedError
  • [ ] ./rez/package_repository.py:register_resource:88: I101: - resource_class
  • [ ] ./rez/package_repository.py:get_package_family:137: I202: + return
  • [ ] ./rez/package_repository.py:get_package_family:131: I401: -r NotImplementedError
  • [ ] ./rez/package_repository.py:iter_package_families:144: S001: s Expected blank line after short description, but found TokenType.WORD: 'particular'.
  • [ ] ./rez/package_repository.py:iter_packages:153: S001: s Expected blank line after short description, but found TokenType.WORD: 'order.'.
  • [ ] ./rez/package_repository.py:iter_variants:169: I202: + return
  • [ ] ./rez/package_repository.py:iter_variants:163: I401: -r NotImplementedError
  • [ ] ./rez/package_repository.py:pre_variant_install:174: I101: - variant_resource
  • [ ] ./rez/package_repository.py:install_variant:198: I202: + return
  • [ ] ./rez/package_repository.py:install_variant:182: I401: -r NotImplementedError
  • [ ] ./rez/package_repository.py:get_parent_package_family:210: I202: + return
  • [ ] ./rez/package_repository.py:get_parent_package_family:204: I401: -r NotImplementedError
  • [ ] ./rez/package_repository.py:get_parent_package:221: I202: + return
  • [ ] ./rez/package_repository.py:get_parent_package:215: I401: -r NotImplementedError
  • [ ] ./rez/package_repository.py:get_variant_state_handle:226: I101: - variant_resource
  • [ ] ./rez/package_repository.py:get_last_release_time:242: I101: - package_family_resource
  • [ ] ./rez/package_repository.py:make_resource_handle:256: I101: - resource_key
  • [ ] ./rez/package_repository.py:make_resource_handle:256: I101: - **variables
  • [ ] ./rez/package_repository.py:make_resource_handle:256: I201: - return
  • [ ] ./rez/package_repository.py:make_resource_handle:256: I401: -r ResourceError
  • [ ] ./rez/package_repository.py:get_resource:286: I101: - **variables
  • [ ] ./rez/package_repository.py:get_resource:288: I102: + variables
  • [ ] ./rez/package_repository.py:get_resource_from_handle:299: I101: - verify_repo
  • [ ] ./rez/package_repository.py:get_resource_from_handle:296: I401: -r ResourceError
  • [ ] ./rez/package_repository.py:get_package_payload_path:333: I202: + return
  • [ ] ./rez/package_repository.py:get_package_payload_path:326: I401: -r NotImplementedError
  • [ ] ./rez/package_repository.py:are_same:396: I101: - path_1
  • [ ] ./rez/package_repository.py:are_same:396: I101: - path_2
  • [ ] ./rez/package_repository.py:get_resource:419: I101: - **variables
  • [ ] ./rez/package_repository.py:get_resource:424: I102: + variables
  • [ ] ./rez/package_repository.py:get_resource_from_handle:435: I401: -r ValueError

  • [ ] ./rez/wrapper.py:__init__:25: I101: - filepath
  • [ ] ./rez/wrapper.py:__init__:25: I401: -r RezSystemError
  • [ ] ./rez/wrapper.py:run:68: I101: - *args
  • [ ] ./rez/wrapper.py:print_about:204: I201: - return
  • [ ] ./rez/wrapper.py:print_package_versions:225: S001: s Expected blank line after short description, but found TokenType.WORD: 'indicate'.

  • [ ] ./rez/package_maker__.py:__init__:86: I101: - package_cls
  • [ ] ./rez/package_maker__.py:__init__:86: I101: - data
  • [ ] ./rez/package_maker__.py:get_package:97: I401: -r PackageMetadataError

  • [ ] ./rez/package_test.py:__init__:59: I101: - **context_kwargs
  • [ ] ./rez/package_test.py:__init__:71: I102: + context_kwargs
  • [ ] ./rez/package_test.py:__init__:56: I401: -r NotImplementedError
  • [ ] ./rez/package_test.py:get_package:96: I401: -r PackageNotFoundError
  • [ ] ./rez/package_test.py:run_test:126: I101: - test_name
  • [ ] ./rez/package_test.py:run_test:126: I401: -r PackageTestError

  • [ ] ./rez/build_system.py:get_buildsys_types:8: I201: - return
  • [ ] ./rez/build_system.py:create_build_system:67: I101: - verbose
  • [ ] ./rez/build_system.py:create_build_system:67: I101: - build_args
  • [ ] ./rez/build_system.py:create_build_system:67: I101: - child_build_args
  • [ ] ./rez/build_system.py:create_build_system:67: I101: - package
  • [ ] ./rez/build_system.py:create_build_system:67: I101: - working_dir
  • [ ] ./rez/build_system.py:create_build_system:67: I101: - opts
  • [ ] ./rez/build_system.py:create_build_system:67: I101: - buildsys_type
  • [ ] ./rez/build_system.py:create_build_system:67: I101: - write_build_scripts
  • [ ] ./rez/build_system.py:create_build_system:67: I201: - return
  • [ ] ./rez/build_system.py:create_build_system:67: I401: -r BuildSystemError
  • [ ] ./rez/build_system.py:name:103: I401: -r NotImplementedError
  • [ ] ./rez/build_system.py:__init__:111: I101: - verbose
  • [ ] ./rez/build_system.py:__init__:108: I401: -r BuildSystemError
  • [ ] ./rez/build_system.py:is_valid_root:142: I101: - path
  • [ ] ./rez/build_system.py:is_valid_root:142: I401: -r NotImplementedError
  • [ ] ./rez/build_system.py:bind_cli:164: S001: s Expected blank line after short description, but found TokenType.WORD: 'to'.
  • [ ] ./rez/build_system.py:build:188: I202: + return
  • [ ] ./rez/build_system.py:build:173: I401: -r NotImplementedError
  • [ ] ./rez/build_system.py:get_standard_vars:207: S001: s Expected blank line after short description, but found TokenType.WORD: 'for'.
  • [ ] ./rez/build_system.py:set_standard_vars:255: S001: s Expected blank line after short description, but found TokenType.WORD: 'use'.

  • [ ] ./rez/config.py:get:457: I101: - key
  • [ ] ./rez/config.py:get:457: I101: - default
  • [ ] ./rez/config.py:get:457: I201: - return
  • [ ] ./rez/config.py:copy:461: I101: - overrides
  • [ ] ./rez/config.py:copy:461: I101: - locked
  • [ ] ./rez/config.py:copy:461: I201: - return
  • [ ] ./rez/config.py:override:473: I101: - key
  • [ ] ./rez/config.py:override:473: I101: - value
  • [ ] ./rez/config.py:override:473: I401: -r AttributeError
  • [ ] ./rez/config.py:remove_override:491: I101: - key
  • [ ] ./rez/config.py:remove_override:491: I401: -r NotImplementedError
  • [ ] ./rez/config.py:warn:500: I101: - key
  • [ ] ./rez/config.py:warn:500: I201: - return
  • [ ] ./rez/config.py:debug:505: I101: - key
  • [ ] ./rez/config.py:debug:505: I201: - return
  • [ ] ./rez/config.py:debug_printer:510: I101: - key
  • [ ] ./rez/config.py:debug_printer:510: I201: - return
  • [ ] ./rez/config.py:plugins:535: S001: s Expected blank line after short description, but found TokenType.WORD: 'until'.
  • [ ] ./rez/config.py:data:540: I201: - return
  • [ ] ./rez/config.py:nonlocal_packages_path:557: I201: - return
  • [ ] ./rez/config.py:_swap:600: I101: - other
  • [ ] ./rez/config.py:_create_main_config:635: S001: s Expected blank line after short description, but found TokenType.WORD: 'config'.
  • [ ] ./rez/config.py:expand_system_vars:770: I101: - data
  • [ ] ./rez/config.py:expand_system_vars:770: I201: - return
  • [ ] ./rez/config.py:create_config:788: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/config.py:_create_locked_config:795: I101: - overrides
  • [ ] ./rez/config.py:_replace_config:813: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.

  • [ ] ./rez/package_filter.py:excludes:22: I202: + return
  • [ ] ./rez/package_filter.py:excludes:16: I401: -r NotImplementedError
  • [ ] ./rez/package_filter.py:add_exclusion:28: I401: -r NotImplementedError
  • [ ] ./rez/package_filter.py:add_inclusion:36: I401: -r NotImplementedError
  • [ ] ./rez/package_filter.py:from_pod:46: I101: - data
  • [ ] ./rez/package_filter.py:from_pod:46: I401: -r NotImplementedError
  • [ ] ./rez/package_filter.py:to_pod:49: I401: -r NotImplementedError
  • [ ] ./rez/package_filter.py:iter_packages:63: I202: + return
  • [ ] ./rez/package_filter.py:iter_packages:53: I301: - yield
  • [ ] ./rez/package_filter.py:copy:130: I201: - return
  • [ ] ./rez/package_filter.py:__and__:140: I101: - other
  • [ ] ./rez/package_filter.py:__and__:140: I201: - return
  • [ ] ./rez/package_filter.py:add_inclusion:234: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/package_filter.py:copy:248: I201: - return
  • [ ] ./rez/package_filter.py:singleton:280: I101: - cls
  • [ ] ./rez/package_filter.py:singleton:280: I201: - return
  • [ ] ./rez/package_filter.py:match:298: I202: + return
  • [ ] ./rez/package_filter.py:match:292: I401: -r NotImplementedError
  • [ ] ./rez/package_filter.py:family:305: S001: s Expected blank line after short description, but found TokenType.WORD: 'package'.
  • [ ] ./rez/package_filter.py:cost:308: I401: -r NotImplementedError
  • [ ] ./rez/package_filter.py:parse_rule:314: I401: -r ConfigurationError
  • [ ] ./rez/package_filter.py:_parse:353: I101: - txt
  • [ ] ./rez/package_filter.py:_parse:356: I202: + return
  • [ ] ./rez/package_filter.py:_parse:353: I401: -r NotImplementedError

  • [ ] ./rez/package_resources_.py:_uri:278: I401: -r NotImplementedError
  • [ ] ./rez/package_resources_.py:normalize_variables:307: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/package_resources_.py:root:334: I201: - return
  • [ ] ./rez/package_resources_.py:subpath:339: I201: - return

  • [ ] ./rez/suite.py:context_names:56: I201: - return
  • [ ] ./rez/suite.py:tools_path:67: S001: s Expected blank line after short description, but found TokenType.WORD: 'tools.'.
  • [ ] ./rez/suite.py:activation_shell_code:74: I101: - shell
  • [ ] ./rez/suite.py:activation_shell_code:74: I201: - return
  • [ ] ./rez/suite.py:add_context:112: I101: - prefix_char
  • [ ] ./rez/suite.py:add_context:109: I401: -r SuiteError
  • [ ] ./rez/suite.py:bump_context:225: I101: - name
  • [ ] ./rez/suite.py:alias_tool:261: I401: -r SuiteError
  • [ ] ./rez/suite.py:get_tool_context:330: S001: s Expected blank line after short description, but found TokenType.WORD: 'belongs'.
  • [ ] ./rez/suite.py:get_alias_conflicts:375: S001: s Failed to parse section head: expected it to end with TokenType.NEWLINE but encountered TokenType.WORD
  • [ ] ./rez/suite.py:validate:385: I401: -r SuiteError
  • [ ] ./rez/suite.py:save:424: I101: - verbose
  • [ ] ./rez/suite.py:save:421: I401: -r SuiteError
  • [ ] ./rez/suite.py:visible_suite_paths:504: I101: - paths
  • [ ] ./rez/suite.py:load_visible_suites:522: I101: - paths
  • [ ] ./rez/suite.py:print_info:531: I101: - verbose
  • [ ] ./rez/suite.py:print_info:531: I101: - buf
  • [ ] ./rez/suite.py:print_tools:573: I101: - verbose
  • [ ] ./rez/suite.py:print_tools:573: I101: - buf

  • [ ] ./rez/build_process_.py:get_build_process_types:22: I201: - return
  • [ ] ./rez/build_process_.py:create_build_process:30: I101: - verbose
  • [ ] ./rez/build_process_.py:create_build_process:30: I101: - vcs
  • [ ] ./rez/build_process_.py:create_build_process:30: I101: - build_system
  • [ ] ./rez/build_process_.py:create_build_process:30: I101: - package
  • [ ] ./rez/build_process_.py:create_build_process:30: I101: - working_dir
  • [ ] ./rez/build_process_.py:create_build_process:30: I101: - ensure_latest
  • [ ] ./rez/build_process_.py:create_build_process:30: I101: - quiet
  • [ ] ./rez/build_process_.py:create_build_process:30: I101: - ignore_existing_tag
  • [ ] ./rez/build_process_.py:create_build_process:30: I101: - process_type
  • [ ] ./rez/build_process_.py:create_build_process:30: I101: - skip_repo_errors
  • [ ] ./rez/build_process_.py:create_build_process:30: I201: - return
  • [ ] ./rez/build_process_.py:create_build_process:30: I401: -r BuildProcessError
  • [ ] ./rez/build_process_.py:__init__:72: I401: -r BuildProcessError
  • [ ] ./rez/build_process_.py:build:134: I202: + return
  • [ ] ./rez/build_process_.py:build:116: I401: -r NotImplementedError
  • [ ] ./rez/build_process_.py:build:132: I402: +r BuildError``
  • [ ] ./rez/build_process_.py:release:152: I202: + return
  • [ ] ./rez/build_process_.py:release:139: I401: -r NotImplementedError
  • [ ] ./rez/build_process_.py:release:150: I402: +r ReleaseError``
  • [ ] ./rez/build_process_.py:get_changelog:160: I202: + return
  • [ ] ./rez/build_process_.py:get_changelog:157: I401: -r NotImplementedError
  • [ ] ./rez/build_process_.py:visit_variants:177: I101: - **kwargs
  • [ ] ./rez/build_process_.py:visit_variants:177: I101: - func
  • [ ] ./rez/build_process_.py:visit_variants:177: I101: - variants
  • [ ] ./rez/build_process_.py:visit_variants:177: I201: - return
  • [ ] ./rez/build_process_.py:visit_variants:177: I401: -r BuildError
  • [ ] ./rez/build_process_.py:get_package_install_path:205: I201: - return
  • [ ] ./rez/build_process_.py:create_build_context:220: I101: - variant
  • [ ] ./rez/build_process_.py:create_build_context:220: I101: - build_type
  • [ ] ./rez/build_process_.py:create_build_context:220: I101: - build_path
  • [ ] ./rez/build_process_.py:create_build_context:220: I201: - return
  • [ ] ./rez/build_process_.py:create_build_context:220: I401: -r BuildContextResolveError

  • [ ] ./rez/tests/test_release.py:assertVariantsEqual:94: S001: s Expected blank line after short description, but found TokenType.WORD: '"PackageRequest'.
  • [ ] ./rez/tests/test_release.py:test_2_variant_add:169: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.

  • [ ] ./rez/tests/test_pip_utils.py:assertRequirements:240: I101: - requirement
  • [ ] ./rez/tests/test_pip_utils.py:assertRequirements:240: I101: - expected
  • [ ] ./rez/tests/test_pip_utils.py:assertRequirements:240: I101: - conditional_extras

  • [ ] ./rez/tests/util.py:update_settings:63: S001: s Expected blank line after short description, but found TokenType.WORD: 'per-test'.
  • [ ] ./rez/tests/util.py:find_file_in_path:110: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/tests/util.py:program_dependent:132: S001: s Expected blank line after short description, but found TokenType.WORD: 'visible.'.
  • [ ] ./rez/tests/util.py:shell_dependent:163: I101: - exclude
  • [ ] ./rez/tests/util.py:shell_dependent:163: I201: - return
  • [ ] ./rez/tests/util.py:install_dependent:194: S001: s Expected blank line after short description, but found TokenType.WORD: 'from'.
  • [ ] ./rez/tests/util.py:get_cli_output:207: S001: s Expected blank line after short description, but found TokenType.WORD: 'command'.

  • [ ] ./rez/tests/test_build.py:_test_build_loco:96: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.

  • [ ] ./rez/tests/test_rex.py:_test:29: I101: - env
  • [ ] ./rez/tests/test_rex.py:_test:29: I101: - expected_exception
  • [ ] ./rez/tests/test_rex.py:_test:29: I101: - **ex_kwargs
  • [ ] ./rez/tests/test_rex.py:_test:29: I101: - expected_actions
  • [ ] ./rez/tests/test_rex.py:_test:29: I101: - expected_output
  • [ ] ./rez/tests/test_rex.py:_test:29: I101: - func
  • [ ] ./rez/tests/test_rex.py:test_7:269: I401: -r Exception

  • [ ] ./rez/tests/test_packages.py:test_1_memory_variant_parent:476: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.

  • [ ] ./rez/tests/test_formatter.py:test_formatter_stdlib:30: S001: s Expected blank line after short description, but found TokenType.WORD: 'ensure'.

  • [ ] ./rez/tests/test_shells.py:test_rex_code:218: S001: s Expected blank line after short description, but found TokenType.WORD: 'values'.

  • [ ] ./rez/tests/test_commands.py:test_2:113: S001: s Expected blank line after short description, but found TokenType.WORD: 'concatenated'.

  • [ ] ./rez/plugin_managers.py:extend_path:21: I101: - path
  • [ ] ./rez/plugin_managers.py:extend_path:21: I101: - name
  • [ ] ./rez/plugin_managers.py:extend_path:21: I201: - return
  • [ ] ./rez/plugin_managers.py:get_plugin_class:170: I101: - plugin_name
  • [ ] ./rez/plugin_managers.py:get_plugin_class:170: I201: - return
  • [ ] ./rez/plugin_managers.py:get_plugin_class:170: I401: -r RezPluginError
  • [ ] ./rez/plugin_managers.py:get_plugin_module:178: I101: - plugin_name
  • [ ] ./rez/plugin_managers.py:get_plugin_module:178: I201: - return
  • [ ] ./rez/plugin_managers.py:get_plugin_module:178: I401: -r RezPluginError
  • [ ] ./rez/plugin_managers.py:config_schema:190: S001: s Expected blank line after short description, but found TokenType.WORD: 'type.'.
  • [ ] ./rez/plugin_managers.py:create_instance:200: I101: - **instance_kwargs
  • [ ] ./rez/plugin_managers.py:create_instance:200: I101: - plugin
  • [ ] ./rez/plugin_managers.py:create_instance:200: I201: - return
  • [ ] ./rez/plugin_managers.py:get_plugin_types:280: I201: - return
  • [ ] ./rez/plugin_managers.py:get_plugins:288: S001: s Expected blank line after short description, but found TokenType.WORD: 'type.'.
  • [ ] ./rez/plugin_managers.py:get_plugin_class:291: I101: - plugin_type
  • [ ] ./rez/plugin_managers.py:get_plugin_class:291: I101: - plugin_name
  • [ ] ./rez/plugin_managers.py:get_plugin_class:291: I201: - return
  • [ ] ./rez/plugin_managers.py:get_plugin_module:298: S001: s Expected blank line after short description, but found TokenType.WORD: 'plugin'.
  • [ ] ./rez/plugin_managers.py:get_plugin_config_data:302: I101: - plugin_type
  • [ ] ./rez/plugin_managers.py:get_plugin_config_data:302: I201: - return
  • [ ] ./rez/plugin_managers.py:get_failed_plugins:311: I101: - plugin_type
  • [ ] ./rez/plugin_managers.py:create_instance:321: I101: - plugin_type
  • [ ] ./rez/plugin_managers.py:create_instance:321: I101: - **instance_kwargs
  • [ ] ./rez/plugin_managers.py:create_instance:321: I101: - plugin_name
  • [ ] ./rez/plugin_managers.py:create_instance:321: I201: - return
  • [ ] ./rez/plugin_managers.py:get_summary_string:326: I201: - return

  • [ ] ./rez/package_help.py:__init__:29: I101: - verbose
  • [ ] ./rez/package_help.py:__init__:29: I101: - paths
  • [ ] ./rez/package_help.py:success:86: I201: - return
  • [ ] ./rez/package_help.py:sections:91: I201: - return
  • [ ] ./rez/package_help.py:open:94: I101: - section_index
  • [ ] ./rez/package_help.py:print_info:105: I101: - buf

  • [ ] ./rez/release_vcs.py:get_release_vcs_types:11: I201: - return
  • [ ] ./rez/release_vcs.py:create_release_vcs:17: I101: - vcs_name
  • [ ] ./rez/release_vcs.py:create_release_vcs:17: I101: - path
  • [ ] ./rez/release_vcs.py:create_release_vcs:17: I201: - return
  • [ ] ./rez/release_vcs.py:create_release_vcs:17: I401: -r ReleaseVCSError
  • [ ] ./rez/release_vcs.py:name:85: I401: -r NotImplementedError
  • [ ] ./rez/release_vcs.py:is_valid_root:100: S001: s Expected blank line after short description, but found TokenType.WORD: 'version'.
  • [ ] ./rez/release_vcs.py:search_parents_for_root:111: S001: s Expected blank line after short description, but found TokenType.WORD: 'find'.
  • [ ] ./rez/release_vcs.py:find_vcs_root:118: S001: s Expected blank line after short description, but found TokenType.WORD: 'given'.
  • [ ] ./rez/release_vcs.py:validate_repostate:134: I401: -r NotImplementedError
  • [ ] ./rez/release_vcs.py:get_current_revision:140: S001: s Expected blank line after short description, but found TokenType.WORD: 'appropriate'.
  • [ ] ./rez/release_vcs.py:get_changelog:159: S001: s Expected type, "give", to have "(" and ")" around it or end in colon.
  • [ ] ./rez/release_vcs.py:tag_exists:172: I202: + return
  • [ ] ./rez/release_vcs.py:tag_exists:166: I401: -r NotImplementedError
  • [ ] ./rez/release_vcs.py:create_release_tag:177: I401: -r NotImplementedError
  • [ ] ./rez/release_vcs.py:export:191: I401: -r NotImplementedError
  • [ ] ./rez/release_vcs.py:_cmd:203: I101: - *nargs
  • [ ] ./rez/release_vcs.py:_cmd:203: I201: - return
  • [ ] ./rez/release_vcs.py:_cmd:203: I401: -r ReleaseVCSError

  • [ ] ./rez/resolver.py:__init__:40: I101: - timestamp
  • [ ] ./rez/resolver.py:__init__:40: I101: - suppress_passive
  • [ ] ./rez/resolver.py:__init__:40: I101: - buf
  • [ ] ./rez/resolver.py:__init__:40: I101: - verbosity
  • [ ] ./rez/resolver.py:__init__:40: I101: - context
  • [ ] ./rez/resolver.py:solve:110: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/resolver.py:status:131: S001: s Unable to parse indent: expected TokenType.INDENT but received TokenType.WORD
  • [ ] ./rez/resolver.py:_get_cached_solve:158: I201: - return
  • [ ] ./rez/resolver.py:_set_cached_solve:310: I101: - solver_dict
  • [ ] ./rez/resolver.py:_memcache_key:358: I101: - timestamped
  • [ ] ./rez/resolver.py:_memcache_key:358: I201: - return

  • [ ] ./rez/packages_.py:iter_packages:61: I202: + return
  • [ ] ./rez/packages_.py:iter_packages:58: I301: - yield
  • [ ] ./rez/packages_.py:config:94: I201: - return
  • [ ] ./rez/packages_.py:is_local:103: I201: - return
  • [ ] ./rez/packages_.py:is_relocatable:248: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/packages_.py:iter_variants:256: I202: + return
  • [ ] ./rez/packages_.py:iter_variants:253: I301: - yield
  • [ ] ./rez/packages_.py:get_variant:262: I101: - index
  • [ ] ./rez/packages_.py:iter_packages:430: I101: - range_
  • [ ] ./rez/packages_.py:iter_packages:430: I101: - name
  • [ ] ./rez/packages_.py:iter_packages:433: I202: + return
  • [ ] ./rez/packages_.py:iter_packages:430: I301: - yield
  • [ ] ./rez/packages_.py:iter_package_families:479: I202: + return
  • [ ] ./rez/packages_.py:iter_package_families:468: I301: - yield
  • [ ] ./rez/packages_.py:iter_packages:502: I202: + return
  • [ ] ./rez/packages_.py:iter_packages:488: I301: - yield
  • [ ] ./rez/packages_.py:create_package:598: I101: - package_cls
  • [ ] ./rez/packages_.py:get_last_release_time:631: I101: - paths
  • [ ] ./rez/packages_.py:get_last_release_time:631: I101: - name
  • [ ] ./rez/packages_.py:get_latest_package:708: I401: -r PackageFamilyNotFoundError

  • [ ] ./rez/cli/_entry_points.py:get_specifications:14: S001: s Failed to parse noqa statement. Expected "# noqa" but received "# distlib.scripts.ScriptMaker.make_multiple"

  • [ ] ./rez/cli/_util.py:format_help:112: I201: - return
  • [ ] ./rez/cli/_util.py:sigint_handler:146: I101: - signum
  • [ ] ./rez/cli/_util.py:sigint_handler:146: I101: - frame
  • [ ] ./rez/cli/_util.py:sigterm_handler:156: I101: - signum
  • [ ] ./rez/cli/_util.py:sigterm_handler:156: I101: - frame

  • [ ] ./rez/cli/build.py:setup_parser_common:32: I101: - parser

  • [ ] ./rez/backport/lru_cache.py:lru_cache:32: S001: s Unable to parse colon: expected TokenType.COLON but received TokenType.WORD

  • [ ] ./rez/backport/importlib.py:_resolve_name:5: I101: - package
  • [ ] ./rez/backport/importlib.py:_resolve_name:5: I101: - level
  • [ ] ./rez/backport/importlib.py:_resolve_name:5: I101: - name
  • [ ] ./rez/backport/importlib.py:_resolve_name:5: I201: - return
  • [ ] ./rez/backport/importlib.py:_resolve_name:5: I401: -r ValueError
  • [ ] ./rez/backport/importlib.py:import_module:19: I101: - package
  • [ ] ./rez/backport/importlib.py:import_module:19: I101: - name
  • [ ] ./rez/backport/importlib.py:import_module:19: I201: - return
  • [ ] ./rez/backport/importlib.py:import_module:19: I401: -r TypeError

  • [ ] ./rez/backport/shutilwhich.py:which:10: S001: s Expected blank line after short description, but found TokenType.WORD: 'conforms'.

  • [ ] ./rez/package_bind.py:get_bind_modules:15: I101: - verbose

  • [ ] ./rez/utils/schema.py:schema_keys:16: I101: - schema
  • [ ] ./rez/utils/schema.py:dict_to_schema:47: I101: - schema_dict

  • [ ] ./rez/utils/backcompat.py:convert_old_variant_handle:20: I101: - handle_dict
  • [ ] ./rez/utils/backcompat.py:convert_old_variant_handle:20: I201: - return
  • [ ] ./rez/utils/backcompat.py:convert_old_command_expansions:40: I101: - command
  • [ ] ./rez/utils/backcompat.py:convert_old_command_expansions:40: I201: - return
  • [ ] ./rez/utils/backcompat.py:convert_old_commands:54: I101: - commands
  • [ ] ./rez/utils/backcompat.py:convert_old_commands:54: I101: - annotate
  • [ ] ./rez/utils/backcompat.py:convert_old_commands:54: I201: - return

  • [ ] ./rez/utils/lint_helper.py:used:14: I101: - object_

  • [ ] ./rez/utils/resources.py:normalize_variables:82: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/utils/resources.py:handle:89: I201: - return
  • [ ] ./rez/utils/resources.py:get:102: I101: - key
  • [ ] ./rez/utils/resources.py:get:102: I101: - default
  • [ ] ./rez/utils/resources.py:get:102: I201: - return
  • [ ] ./rez/utils/resources.py:_load:128: I202: + return
  • [ ] ./rez/utils/resources.py:_load:118: I401: -r NotImplementedError
  • [ ] ./rez/utils/resources.py:get:144: I101: - key
  • [ ] ./rez/utils/resources.py:get:144: I101: - default
  • [ ] ./rez/utils/resources.py:get:144: I201: - return
  • [ ] ./rez/utils/resources.py:to_dict:150: S001: s Expected blank line after short description, but found TokenType.WORD: 'representation.'.
  • [ ] ./rez/utils/resources.py:from_dict:156: I101: - d
  • [ ] ./rez/utils/resources.py:from_dict:156: I201: - return

  • [ ] ./rez/utils/diff_packages.py:diff_packages:14: S001: s Expected blank line after short description, but found TokenType.WORD: 'packages.'.

  • [ ] ./rez/utils/platform_mapped.py:platform_mapped:15: S001: s Failed to parse noqa statement. Expected "# noqa" but received "# Scientific"

  • [ ] ./rez/utils/memcached.py:set:79: I101: - key
  • [ ] ./rez/utils/memcached.py:set:79: I101: - time
  • [ ] ./rez/utils/memcached.py:set:79: I101: - val
  • [ ] ./rez/utils/memcached.py:set:79: I101: - min_compress_len
  • [ ] ./rez/utils/memcached.py:get:94: I101: - key
  • [ ] ./rez/utils/memcached.py:delete:118: I101: - key
  • [ ] ./rez/utils/memcached.py:memcached_client:214: I101: - servers
  • [ ] ./rez/utils/memcached.py:memcached_client:214: I101: - debug
  • [ ] ./rez/utils/memcached.py:memcached_client:224: I202: + return
  • [ ] ./rez/utils/memcached.py:memcached_client:214: I301: - yield
  • [ ] ./rez/utils/memcached.py:pool_memcached_connections:235: I101: - func
  • [ ] ./rez/utils/memcached.py:pool_memcached_connections:235: I201: - return
  • [ ] ./rez/utils/memcached.py:pool_memcached_connections:235: I301: - yield
  • [ ] ./rez/utils/memcached.py:memcached:255: I201: - return

  • [ ] ./rez/utils/scope.py:_create_child_attribute:83: I101: - attr
  • [ ] ./rez/utils/scope.py:to_dict:91: I201: - return
  • [ ] ./rez/utils/scope.py:update:104: I101: - data
  • [ ] ./rez/utils/scope.py:update:104: I401: -r AttributeError
  • [ ] ./rez/utils/scope.py:to_dict:223: I201: - return
  • [ ] ./rez/utils/scope.py:scoped_formatter:232: I101: - **objects
  • [ ] ./rez/utils/scope.py:scoped_formatter:232: I201: - return
  • [ ] ./rez/utils/scope.py:scoped_format:251: I101: - **objects
  • [ ] ./rez/utils/scope.py:scoped_format:251: I101: - txt
  • [ ] ./rez/utils/scope.py:scoped_format:252: I102: + objects
  • [ ] ./rez/utils/scope.py:scoped_format:255: I102: + pretty
  • [ ] ./rez/utils/scope.py:scoped_format:256: I102: + expand
  • [ ] ./rez/utils/scope.py:scoped_format:240: I201: - return

  • [ ] ./rez/utils/platform_.py:arch:27: I201: - return
  • [ ] ./rez/utils/platform_.py:os:33: I201: - return
  • [ ] ./rez/utils/platform_.py:terminal_emulator_command:39: S001: s Expected blank line after short description, but found TokenType.WORD: 'terminal'.
  • [ ] ./rez/utils/platform_.py:new_session_popen_args:53: S001: s Expected blank line after short description, but found TokenType.WORD: 'a'.
  • [ ] ./rez/utils/platform_.py:image_viewer:61: I201: - return
  • [ ] ./rez/utils/platform_.py:editor:69: I201: - return
  • [ ] ./rez/utils/platform_.py:difftool:74: I201: - return
  • [ ] ./rez/utils/platform_.py:tmpdir:79: I201: - return
  • [ ] ./rez/utils/platform_.py:physical_cores:84: I201: - return
  • [ ] ./rez/utils/platform_.py:logical_cores:95: I201: - return
  • [ ] ./rez/utils/platform_.py:symlink:138: I101: - source
  • [ ] ./rez/utils/platform_.py:symlink:138: I101: - link_name
  • [ ] ./rez/utils/platform_.py:_parse_colon_table_to_dict:319: S001: s Expected blank line after short description, but found TokenType.WORD: 'of'.

  • [ ] ./rez/utils/colorize.py:stream_is_tty:20: I101: - stream
  • [ ] ./rez/utils/colorize.py:critical:32: S001: s Expected blank line after short description, but found TokenType.WORD: 'message.'.
  • [ ] ./rez/utils/colorize.py:error:45: S001: s Expected blank line after short description, but found TokenType.WORD: 'message.'.
  • [ ] ./rez/utils/colorize.py:warning:58: S001: s Expected blank line after short description, but found TokenType.WORD: 'message.'.
  • [ ] ./rez/utils/colorize.py:info:71: S001: s Expected blank line after short description, but found TokenType.WORD: 'message.'.
  • [ ] ./rez/utils/colorize.py:debug:84: S001: s Expected blank line after short description, but found TokenType.WORD: 'message.'.
  • [ ] ./rez/utils/colorize.py:heading:97: S001: s Expected blank line after short description, but found TokenType.WORD: 'message.'.
  • [ ] ./rez/utils/colorize.py:local:110: S001: s Expected blank line after short description, but found TokenType.WORD: 'local'.
  • [ ] ./rez/utils/colorize.py:implicit:124: S001: s Expected blank line after short description, but found TokenType.WORD: 'implicit'.
  • [ ] ./rez/utils/colorize.py:alias:138: S001: s Expected blank line after short description, but found TokenType.WORD: 'tool'.
  • [ ] ./rez/utils/colorize.py:notset:151: S001: s Expected blank line after short description, but found TokenType.WORD: 'remove'.
  • [ ] ./rez/utils/colorize.py:_color_level:164: S001: s Expected blank line after short description, but found TokenType.WORD: 'level.'.
  • [ ] ./rez/utils/colorize.py:_color:182: S001: s Unable to parse indent: expected TokenType.INDENT but received TokenType.WORD
  • [ ] ./rez/utils/colorize.py:is_tty:257: S001: s Expected blank line after short description, but found TokenType.WORD: 'stream.'.
  • [ ] ./rez/utils/colorize.py:emit:270: I101: - record

  • [ ] ./rez/utils/sourcecode.py:early:12: I201: - return
  • [ ] ./rez/utils/sourcecode.py:late:25: I201: - return
  • [ ] ./rez/utils/sourcecode.py:late:25: I401: -r ValueError
  • [ ] ./rez/utils/sourcecode.py:include:52: I101: - module_name
  • [ ] ./rez/utils/sourcecode.py:include:52: I101: - *module_names
  • [ ] ./rez/utils/sourcecode.py:include:52: I201: - return

  • [ ] ./rez/utils/formatting.py:is_valid_package_name:34: I401: -r PackageRequestError
  • [ ] ./rez/utils/formatting.py:format:164: I101: - pretty
  • [ ] ./rez/utils/formatting.py:format:166: I102: + "pretty
  • [ ] ./rez/utils/formatting.py:indent:252: I101: - txt
  • [ ] ./rez/utils/formatting.py:indent:252: I201: - return
  • [ ] ./rez/utils/formatting.py:dict_to_attributes_code:258: I101: - dict_
  • [ ] ./rez/utils/formatting.py:columnise:293: I101: - rows
  • [ ] ./rez/utils/formatting.py:columnise:293: I101: - padding
  • [ ] ./rez/utils/formatting.py:columnise:293: I201: - return
  • [ ] ./rez/utils/formatting.py:print_colored_columns:321: I101: - rows
  • [ ] ./rez/utils/formatting.py:print_colored_columns:321: I101: - padding
  • [ ] ./rez/utils/formatting.py:readable_time_duration:345: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/utils/formatting.py:readable_memory_size:359: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/utils/formatting.py:get_epoch_time_from_str:390: S001: s Failed to parse noqa statement. Expected "# noqa" but received "# already"
  • [ ] ./rez/utils/formatting.py:positional_number_string:420: I101: - n
  • [ ] ./rez/utils/formatting.py:positional_number_string:420: I201: - return
  • [ ] ./rez/utils/formatting.py:expanduser:450: I101: - path
  • [ ] ./rez/utils/formatting.py:expanduser:450: I201: - return
  • [ ] ./rez/utils/formatting.py:as_block_string:489: S001: s Expected blank line after short description, but found TokenType.WORD: "you're".

  • [ ] ./rez/utils/graph_utils.py:read_graph_from_string:28: S001: s Expected blank line after short description, but found TokenType.WORD: 'compressed'.
  • [ ] ./rez/utils/graph_utils.py:write_compacted:75: I101: - g
  • [ ] ./rez/utils/graph_utils.py:prune_graph:161: S001: s Expected blank line after short description, but found TokenType.WORD: 'given'.
  • [ ] ./rez/utils/graph_utils.py:save_graph:207: I401: -r RuntimeError
  • [ ] ./rez/utils/graph_utils.py:save_graph_object:251: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/utils/graph_utils.py:view_graph:268: I101: - graph_str
  • [ ] ./rez/utils/graph_utils.py:view_graph:268: I101: - dest_file

  • [ ] ./rez/utils/py23.py:get_function_arg_names:8: I101: - func
  • [ ] ./rez/utils/py23.py:get_function_arg_names:8: I201: - return

  • [ ] ./rez/utils/data_utils.py:remove_nones:39: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/utils/data_utils.py:deep_update:43: I101: - dict1
  • [ ] ./rez/utils/data_utils.py:deep_update:43: I101: - dict2
  • [ ] ./rez/utils/data_utils.py:deep_del:81: I101: - fn
  • [ ] ./rez/utils/data_utils.py:deep_del:81: I101: - data
  • [ ] ./rez/utils/data_utils.py:get_dict_diff:101: I101: - d1
  • [ ] ./rez/utils/data_utils.py:get_dict_diff:101: I101: - d2
  • [ ] ./rez/utils/data_utils.py:get_dict_diff_str:144: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/utils/data_utils.py:convert_dicts:328: I101: - d

  • [ ] ./rez/utils/system.py:add_sys_paths:10: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/utils/system.py:popen:19: I101: - **kwargs
  • [ ] ./rez/utils/system.py:popen:19: I101: - args
  • [ ] ./rez/utils/system.py:popen:19: I201: - return

  • [ ] ./rez/utils/filesystem.py:make_path_writable:82: I301: - yield
  • [ ] ./rez/utils/filesystem.py:retain_cwd:123: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/utils/filesystem.py:safe_makedirs:162: I101: - path
  • [ ] ./rez/utils/filesystem.py:safe_remove:175: I101: - path
  • [ ] ./rez/utils/filesystem.py:replacing_symlink:195: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/utils/filesystem.py:replacing_copy:201: I101: - follow_symlinks
  • [ ] ./rez/utils/filesystem.py:replacing_copy:201: I101: - src
  • [ ] ./rez/utils/filesystem.py:replacing_copy:201: I101: - dest
  • [ ] ./rez/utils/filesystem.py:replace_file_or_dir:228: I101: - source
  • [ ] ./rez/utils/filesystem.py:replace_file_or_dir:228: I101: - dest
  • [ ] ./rez/utils/filesystem.py:additive_copytree:257: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/utils/filesystem.py:make_tmp_name:273: I101: - name
  • [ ] ./rez/utils/filesystem.py:make_tmp_name:273: I301: - yield
  • [ ] ./rez/utils/filesystem.py:is_subdirectory:288: I101: - path_b
  • [ ] ./rez/utils/filesystem.py:is_subdirectory:288: I101: - path_a
  • [ ] ./rez/utils/filesystem.py:is_subdirectory:288: I201: - return
  • [ ] ./rez/utils/filesystem.py:find_matching_symlink:296: I101: - source
  • [ ] ./rez/utils/filesystem.py:find_matching_symlink:296: I101: - path
  • [ ] ./rez/utils/filesystem.py:copy_or_replace:324: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/utils/filesystem.py:copytree:357: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/utils/filesystem.py:movetree:411: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/utils/filesystem.py:safe_chmod:421: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.
  • [ ] ./rez/utils/filesystem.py:encode_filesystem_name:440: S001: s Expected blank line after short description, but found TokenType.WORD: 'non-unicode'.
  • [ ] ./rez/utils/filesystem.py:decode_filesystem_name:513: S001: s Expected blank line after short description, but found TokenType.WORD: 'to'.
  • [ ] ./rez/utils/filesystem.py:walk_up_dirs:582: S001: s Expected blank line after short description, but found TokenType.WORD: 'up'.

  • [ ] ./rez/utils/yaml.py:dump_yaml:41: I101: - Dumper
  • [ ] ./rez/utils/yaml.py:dump_yaml:41: I101: - default_flow_style
  • [ ] ./rez/utils/yaml.py:dump_yaml:41: I101: - data
  • [ ] ./rez/utils/yaml.py:dump_yaml:41: I201: - return
  • [ ] ./rez/utils/yaml.py:load_yaml:49: I101: - filepath
  • [ ] ./rez/utils/yaml.py:load_yaml:49: I201: - return

  • [ ] ./rez/utils/py_dist.py:convert_name:22: I101: - name
  • [ ] ./rez/utils/py_dist.py:convert_name:22: I201: - return
  • [ ] ./rez/utils/py_dist.py:convert_version:29: I101: - version
  • [ ] ./rez/utils/py_dist.py:convert_version:29: I201: - return
  • [ ] ./rez/utils/py_dist.py:convert_requirement:46: S001: s Expected blank line after short description, but found TokenType.WORD: 'request'.
  • [ ] ./rez/utils/py_dist.py:get_dist_dependencies:88: S001: s Expected blank line after short description, but found TokenType.WORD: '@param'.
  • [ ] ./rez/utils/py_dist.py:convert_dist:125: I101: - name
  • [ ] ./rez/utils/py_dist.py:convert_dist:122: I401: -r RezSystemError

  • [ ] ./rez/utils/pip.py:pip_to_rez_version:78: S001: s Expected type, "version", to have "(" and ")" around it or end in colon.
  • [ ] ./rez/utils/pip.py:pip_specifier_to_rez_requirement:147: S001: s Failed to parse noqa statement. Expected "# noqa" but received "# version-specifiers"
  • [ ] ./rez/utils/pip.py:is_pure_python_package:317: S001: s Unable to parse colon: expected TokenType.COLON but received TokenType.WORD
  • [ ] ./rez/utils/pip.py:get_rez_requirements:342: S001: s Failed to parse noqa statement. Expected "# noqa" but received "# metadata"
  • [ ] ./rez/utils/pip.py:convert_distlib_to_setuptools:485: S001: s Unable to parse word: expected TokenType.WORD but received TokenType.NEWLINE
  • [ ] ./rez/utils/pip.py:get_marker_sys_requirements:513: S001: s Failed to parse noqa statement. Expected "# noqa" but received "# id23"
  • [ ] ./rez/utils/pip.py:normalize_requirement:576: S001: s Failed to parse noqa statement. Expected "# noqa" but received "# environment-markers"

  • [ ] ./rez/utils/base26.py:get_next_base26:9: I101: - prev
  • [ ] ./rez/utils/base26.py:get_next_base26:9: I401: -r ValueError
  • [ ] ./rez/utils/base26.py:create_unique_base26_symlink:30: I101: - source
  • [ ] ./rez/utils/base26.py:create_unique_base26_symlink:30: I101: - path
  • [ ] ./rez/utils/base26.py:create_unique_base26_symlink:30: I401: -r RuntimeError

  • [ ] ./rez/utils/json.py:loads:15: I101: - json_text
  • [ ] ./rez/utils/json.py:loads:15: I201: - return

  • [ ] ./rez/utils/amqp.py:publish_message:19: I101: - host
  • [ ] ./rez/utils/amqp.py:publish_message:19: I101: - block
  • [ ] ./rez/utils/amqp.py:publish_message:19: I101: - amqp_settings
  • [ ] ./rez/utils/amqp.py:publish_message:19: I101: - data
  • [ ] ./rez/utils/amqp.py:publish_message:19: I101: - routing_key
  • [ ] ./rez/utils/amqp.py:_publish_message:52: I101: - host
  • [ ] ./rez/utils/amqp.py:_publish_message:52: I101: - routing_key
  • [ ] ./rez/utils/amqp.py:_publish_message:52: I101: - amqp_settings
  • [ ] ./rez/utils/amqp.py:_publish_message:52: I101: - data

  • [ ] ./rez/developer_package.py:from_path:49: I401: -r PackageMetadataError
  • [ ] ./rez/developer_package.py:_get_preprocessed:174: S001: s Expected blank line after short description, but found TokenType.INDENT: ' '.

  • [ ] ./rez/system.py:rez_version:17: I201: - return
  • [ ] ./rez/system.py:platform:24: S001: s Expected blank line after short description, but found TokenType.WORD: '@returns'.
  • [ ] ./rez/system.py:arch:35: S001: s Expected blank line after short description, but found TokenType.WORD: '@returns'.
  • [ ] ./rez/system.py:os:46: S001: s Expected blank line after short description, but found TokenType.WORD: '@returns'.
  • [ ] ./rez/system.py:variant:59: S001: s Expected blank line after short description, but found TokenType.WORD: 'for'.
  • [ ] ./rez/system.py:shell:68: S001: s Expected blank line after short description, but found TokenType.WORD: '@returns'.
  • [ ] ./rez/system.py:user:159: I201: - return
  • [ ] ./rez/system.py:home:165: I201: - return
  • [ ] ./rez/system.py:fqdn:170: I201: - return
  • [ ] ./rez/system.py:hostname:178: I201: - return
  • [ ] ./rez/system.py:domain:186: I201: - return
  • [ ] ./rez/system.py:rez_bin_path:198: S001: s Expected blank line after short description, but found TokenType.WORD: 'available,'.
  • [ ] ./rez/system.py:is_production_rez_install:222: I201: - return

  • [ ] ./rez/status.py:print_info:96: I101: - buf
  • [ ] ./rez/status.py:print_info:89: I201: - return
  • [ ] ./rez/status.py:print_tools:125: I101: - buf
  • [ ] ./rez/status.py:print_tools:122: I201: - return

  • [ ] ./rez/bind/_utils.py:check_version:51: I401: -r RezBindError
  • [ ] ./rez/bind/_utils.py:find_exe:63: I401: -r RezBindError
  • [ ] ./rez/bind/_utils.py:extract_version:87: I401: -r RezBindError

  • [ ] ./rez/pip.py:run_pip_command:58: S001: s Expected blank line after short description, but found TokenType.WORD: 'Args'.
  • [ ] ./rez/pip.py:find_pip:72: I401: -r RezSystemError
  • [ ] ./rez/pip.py:pip_install_package:173: S001: s Expected blank line after short description, but found TokenType.WORD: 'Args'.
  • [ ] ./rez/pip.py:make_root:305: S001: s Expected blank line after short description, but found TokenType.WORD: 'distribution'.

  • [ ] ./rez/release_hook.py:get_release_hook_types:6: I201: - return
  • [ ] ./rez/release_hook.py:create_release_hook:12: I101: - source_path
  • [ ] ./rez/release_hook.py:create_release_hook:12: I101: - name
  • [ ] ./rez/release_hook.py:create_release_hook:12: I201: - return
  • [ ] ./rez/release_hook.py:name:42: I401: -r NotImplementedError
  • [ ] ./rez/release_hook.py:pre_build:61: I101: - **kwargs
  • [ ] ./rez/release_hook.py:pre_build:72: I102: + kwargs
  • [ ] ./rez/release_hook.py:pre_release:87: I101: - **kwargs
  • [ ] ./rez/release_hook.py:pre_release:98: I102: + kwargs
  • [ ] ./rez/release_hook.py:post_release:113: I101: - **kwargs
  • [ ] ./rez/release_hook.py:post_release:123: I102: + kwargs

  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__getitem__:26: S001: s Expected blank line after short description, but found TokenType.WORD: 'negative'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__delitem__:33: S001: s Expected blank line after short description, but found TokenType.WORD: 'indices'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__init__:60: S001: s Expected blank line after short description, but found TokenType.WORD: 'efficiently'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:key:144: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__delitem__:154: S001: s Expected blank line after short description, but found TokenType.WORD: 'dictionary.'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__iter__:160: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__reversed__:169: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__setitem__:178: I101: - key
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__setitem__:178: I101: - value
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:copy:184: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:fromkeys:192: I101: - seq
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:fromkeys:192: I101: - value
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:fromkeys:192: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:items:198: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:items:206: S001: s Expected blank line after short description, but found TokenType.WORD: 'the'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:iteritems:212: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:keys:224: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:keys:230: S001: s Expected blank line after short description, but found TokenType.WORD: 'methods'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:iterkeys:236: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:values:246: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:values:252: S001: s Expected blank line after short description, but found TokenType.WORD: 'In'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:itervalues:258: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:pop:271: S001: s Expected blank line after short description, but found TokenType.WORD: 'else'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:popitem:286: S001: s Expected blank line after short description, but found TokenType.WORD: 'last=True'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:peekitem:301: I101: - index
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:peekitem:301: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:setdefault:316: S001: s Expected blank line after short description, but found TokenType.WORD: 'with'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:update:329: S001: s Expected blank line after short description, but found TokenType.WORD: 'existing'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:viewkeys:358: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:viewvalues:362: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:viewitems:366: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__init__:399: I101: - sorted_dict
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__init__:407: I101: - sorted_dict
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__len__:414: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__contains__:419: S001: s Expected blank line after short description, but found TokenType.WORD: 'keys.'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__iter__:425: S001: s Expected blank line after short description, but found TokenType.WORD: 'over'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__getitem__:432: I101: - index
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__getitem__:432: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__reversed__:437: S001: s Expected blank line after short description, but found TokenType.WORD: 'iterated'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:index:446: S001: s Expected blank line after short description, but found TokenType.WORD: '<'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:count:453: I101: - value
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:count:453: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__eq__:456: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__eq__:456: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__ne__:459: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__ne__:459: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__lt__:462: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__lt__:462: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__gt__:465: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__gt__:465: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__le__:468: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__le__:468: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__ge__:471: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__ge__:471: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__and__:474: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__and__:474: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__or__:477: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__or__:477: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__sub__:480: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__sub__:480: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__xor__:483: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__xor__:483: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:isdisjoint:487: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:isdisjoint:487: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:isdisjoint:492: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:isdisjoint:492: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__init__:513: S001: s Expected blank line after short description, but found TokenType.WORD: '*sorted_dict*.'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__init__:523: S001: s Expected blank line after short description, but found TokenType.WORD: '*sorted_dict*.'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__len__:530: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__contains__:535: S001: s Expected blank line after short description, but found TokenType.WORD: 'values.'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__iter__:541: S001: s Expected blank line after short description, but found TokenType.WORD: 'iterated'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__getitem__:549: I101: - index
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__getitem__:549: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__reversed__:561: S001: s Expected blank line after short description, but found TokenType.WORD: 'iterated'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:index:572: S001: s Unable to parse colon: expected TokenType.COLON but received TokenType.WORD
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:count:581: I101: - value
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:count:581: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:count:585: I101: - value
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:count:585: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__init__:623: S001: s Expected blank line after short description, but found TokenType.WORD: '*sorted_dict*.'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__init__:633: S001: s Expected blank line after short description, but found TokenType.WORD: '*sorted_dict*.'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__len__:640: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__contains__:645: S001: s Expected blank line after short description, but found TokenType.WORD: 'items.'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__iter__:651: S001: s Expected blank line after short description, but found TokenType.WORD: 'over'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__getitem__:659: I101: - index
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__getitem__:659: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__reversed__:668: S001: s Expected blank line after short description, but found TokenType.WORD: 'iterated'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:index:678: S001: s Expected blank line after short description, but found TokenType.WORD: '<'.
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:count:690: I101: - item
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:count:690: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__eq__:695: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__eq__:695: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__ne__:698: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__ne__:698: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__lt__:701: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__lt__:701: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__gt__:704: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__gt__:704: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__le__:707: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__le__:707: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__ge__:710: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__ge__:710: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__and__:713: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__and__:713: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__or__:716: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__or__:716: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__sub__:719: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__sub__:719: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__xor__:722: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:__xor__:722: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:isdisjoint:726: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:isdisjoint:726: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:isdisjoint:735: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sorteddict.py:isdisjoint:735: I201: - return

  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:__init__:22: S001: s Expected blank line after short description, but found TokenType.WORD: 'SortedSet'.
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:key:69: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:_fromset:74: I101: - values
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:_fromset:74: I101: - key
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:_fromset:74: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:__contains__:80: I101: - value
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:__contains__:80: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:__getitem__:84: I101: - index
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:__getitem__:84: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:__delitem__:92: I101: - index
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:_make_cmp:108: I101: - doc
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:_make_cmp:108: I101: - set_op
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:_make_cmp:108: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:comparer:110: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:comparer:110: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:__len__:132: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:__iter__:138: S001: s Expected blank line after short description, but found TokenType.WORD: 'order.'.
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:__reversed__:148: S001: s Expected blank line after short description, but found TokenType.WORD: 'sorted'.
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:add:156: I101: - value
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:copy:168: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:count:174: I101: - value
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:count:174: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:discard:180: S001: s Expected blank line after short description, but found TokenType.WORD: 'does'.
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:pop:190: S001: s Expected blank line after short description, but found TokenType.WORD: 'set'.
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:remove:201: S001: s Expected blank line after short description, but found TokenType.WORD: '*value*'.
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:difference:209: S001: s Expected blank line after short description, but found TokenType.WORD: '*iterables*.'.
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:difference_update:220: S001: s Expected blank line after short description, but found TokenType.WORD: 'found'.
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:intersection:238: I101: - *iterables
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:intersection:238: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:intersection_update:248: I101: - *iterables
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:intersection_update:248: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:symmetric_difference:261: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:symmetric_difference:261: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:symmetric_difference_update:273: S001: s Expected blank line after short description, but found TokenType.WORD: 'but'.
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:union:285: I101: - *iterables
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:union:285: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:update:294: I101: - *iterables
  • [ ] ./rez/vendor/sortedcontainers/sortedset.py:update:294: I201: - return

  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:recursive_repr:33: I101: - func
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:recursive_repr:33: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:wrapper:39: I101: - self
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:wrapper:39: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__init__:62: S001: s Expected blank line after short description, but found TokenType.WORD: 'items'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__new__:82: S001: s Expected blank line after short description, but found TokenType.WORD: 'items'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:key:102: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:_reset:105: I101: - load
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:add:132: I101: - val
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:_expand:154: I101: - pos
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:update:186: I101: - iterable
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__contains__:212: I101: - val
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__contains__:212: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:discard:229: I101: - val
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:remove:254: S001: s Unable to parse colon: expected TokenType.COLON but received TokenType.WORD
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:_delete:276: I101: - idx
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:_delete:276: I101: - pos
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:_loc:334: S001: s Expected blank line after short description, but found TokenType.WORD: 'the'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:_pos:408: S001: s Expected blank line after short description, but found TokenType.WORD: 'the'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__delitem__:560: I101: - idx
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__delitem__:560: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__getitem__:594: I101: - idx
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__getitem__:594: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__getitem__:594: I401: -r IndexError
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__setitem__:695: I101: - index
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__setitem__:695: I101: - value
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__setitem__:695: I401: -r ValueError
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__iter__:807: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__reversed__:816: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:islice:827: S001: s Expected blank line after short description, but found TokenType.WORD: 'inclusive'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:_islice:860: S001: s Expected blank line after short description, but found TokenType.WORD: ''.`
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:irange:898: I101: - reverse
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:irange:898: I101: - inclusive
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:irange:898: I101: - maximum
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:irange:898: I101: - minimum
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:irange:898: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__len__:968: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:bisect_left:974: S001: s Expected blank line after short description, but found TokenType.WORD: 'appropriate'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:bisect_right:994: S001: s Expected blank line after short description, but found TokenType.WORD: 'point'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:count:1014: I101: - val
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:count:1014: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:copy:1044: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:append:1052: S001: s Expected blank line after short description, but found TokenType.WORD: 'would'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:extend:1078: S001: s Expected blank line after short description, but found TokenType.WORD: 'ValueError'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:insert:1131: S001: s Expected blank line after short description, but found TokenType.WORD: 'the'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:pop:1194: S001: s Expected blank line after short description, but found TokenType.WORD: 'list'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:index:1238: S001: s Expected blank line after short description, but found TokenType.WORD: 'ValueError'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__add__:1294: S001: s Expected blank line after short description, but found TokenType.WORD: '*that*.'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__iadd__:1304: S001: s Expected blank line after short description, but found TokenType.WORD: 'need'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__mul__:1312: S001: s Expected blank line after short description, but found TokenType.WORD: 'in'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__imul__:1320: S001: s Expected blank line after short description, but found TokenType.WORD: 'each'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:_make_cmp:1328: I101: - doc
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:_make_cmp:1328: I101: - seq_op
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:_make_cmp:1328: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:comparer:1330: I101: - that
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:comparer:1330: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__repr__:1366: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:test_offset_pos:1425: I101: - pos
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:test_offset_pos:1425: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:identity:1461: I101: - value
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:identity:1461: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__init__:1473: S001: s Expected blank line after short description, but found TokenType.WORD: 'items'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:key:1502: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:add:1515: I101: - val
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:_expand:1544: I101: - pos
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:update:1581: I101: - iterable
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__contains__:1609: I101: - val
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__contains__:1609: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:discard:1643: I101: - val
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:remove:1683: S001: s Unable to parse colon: expected TokenType.COLON but received TokenType.WORD
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:_delete:1717: I101: - idx
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:_delete:1717: I101: - pos
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__setitem__:1819: I101: - index
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__setitem__:1819: I101: - value
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__setitem__:1819: I401: -r ValueError
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:irange:1944: I101: - reverse
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:irange:1944: I101: - inclusive
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:irange:1944: I101: - maximum
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:irange:1944: I101: - minimum
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:irange:1944: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:irange_key:1967: I101: - inclusive
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:irange_key:1967: I101: - reverse
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:irange_key:1967: I101: - max_key
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:irange_key:1967: I101: - min_key
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:irange_key:1967: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:bisect_left:2041: S001: s Expected blank line after short description, but found TokenType.WORD: 'appropriate'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:bisect_right:2049: S001: s Expected blank line after short description, but found TokenType.WORD: 'point'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:bisect_key_left:2058: S001: s Expected blank line after short description, but found TokenType.WORD: 'appropriate'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:bisect_key_right:2081: S001: s Expected blank line after short description, but found TokenType.WORD: 'point'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:count:2101: I101: - val
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:count:2101: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:copy:2134: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:append:2142: S001: s Expected blank line after short description, but found TokenType.WORD: 'would'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:extend:2172: S001: s Expected blank line after short description, but found TokenType.WORD: 'ValueError'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:insert:2227: S001: s Expected blank line after short description, but found TokenType.WORD: 'the'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:index:2295: S001: s Expected blank line after short description, but found TokenType.WORD: 'ValueError'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__add__:2357: S001: s Expected blank line after short description, but found TokenType.WORD: '*that*.'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__mul__:2367: S001: s Expected blank line after short description, but found TokenType.WORD: 'in'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__imul__:2375: S001: s Expected blank line after short description, but found TokenType.WORD: 'each'.
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:__repr__:2385: I201: - return
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:test_offset_pos:2456: I101: - pos
  • [ ] ./rez/vendor/sortedcontainers/sortedlist.py:test_offset_pos:2456: I201: - return

  • [ ] ./rez/vendor/yaml/lib3/__init__.py:scan:58: I101: - stream
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:scan:58: I101: - Loader
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:scan:58: I301: - yield
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:parse:69: I101: - stream
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:parse:69: I101: - Loader
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:parse:69: I301: - yield
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:compose:82: S001: s Expected blank line after short description, but found TokenType.WORD: 'and'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:compose_all:93: S001: s Expected blank line after short description, but found TokenType.WORD: 'and'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:load:105: S001: s Expected blank line after short description, but found TokenType.WORD: 'and'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:load_all:120: S001: s Expected blank line after short description, but found TokenType.WORD: 'and'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:full_load:136: S001: s Expected blank line after short description, but found TokenType.WORD: 'and'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:full_load_all:146: S001: s Expected blank line after short description, but found TokenType.WORD: 'and'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:safe_load:156: S001: s Expected blank line after short description, but found TokenType.WORD: 'and'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:safe_load_all:166: S001: s Expected blank line after short description, but found TokenType.WORD: 'and'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:unsafe_load:176: S001: s Expected blank line after short description, but found TokenType.WORD: 'and'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:unsafe_load_all:186: S001: s Expected blank line after short description, but found TokenType.WORD: 'and'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:emit:198: S001: s Expected blank line after short description, but found TokenType.WORD: 'If'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:serialize_all:221: S001: s Expected blank line after short description, but found TokenType.WORD: 'If'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:serialize:247: S001: s Expected blank line after short description, but found TokenType.WORD: 'If'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:dump_all:259: S001: s Expected blank line after short description, but found TokenType.WORD: 'If'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:dump:287: S001: s Expected blank line after short description, but found TokenType.WORD: 'If'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:safe_dump_all:294: S001: s Expected blank line after short description, but found TokenType.WORD: 'Produce'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:safe_dump:302: S001: s Expected blank line after short description, but found TokenType.WORD: 'Produce'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:add_implicit_resolver:311: S001: s Expected blank line after short description, but found TokenType.WORD: 'If'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:add_path_resolver:321: S001: s Expected blank line after short description, but found TokenType.WORD: 'A'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:add_constructor:331: S001: s Expected blank line after short description, but found TokenType.WORD: 'Constructor'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:add_multi_constructor:339: S001: s Expected blank line after short description, but found TokenType.WORD: 'Multi-constructor'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:add_representer:348: S001: s Expected blank line after short description, but found TokenType.WORD: 'Representer'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:add_multi_representer:357: S001: s Expected blank line after short description, but found TokenType.WORD: 'Multi-representer'.
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:from_yaml:390: I101: - loader
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:from_yaml:390: I101: - node
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:from_yaml:390: I201: - return
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:to_yaml:397: I101: - dumper
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:to_yaml:397: I101: - data
  • [ ] ./rez/vendor/yaml/lib3/__init__.py:to_yaml:397: I201: - return

bfloch avatar Sep 14 '19 04:09 bfloch

I think we should ignore contents of ./rez/vendor, to not make updating of vendored libs even more of a chore.

maxnbk avatar Oct 06 '19 20:10 maxnbk

I'd go with Pylint (which comes with builtin support for docstring checks, although disabled by default) and would allow us to do general code linting. Pylint supports Sphinx, Google and Numpy dosctrs.

And I agree, vendored libs should be ignored.

Would be good to add linting to CI, as well as black (when we get to that).

On Tue, 8 Oct. 2019, 12:12 Jean-Christophe Morin, [email protected] wrote:

I'd go with Pylint (which comes with builtin support for docstring checks, although disabled by default) and would allow us to do general code linting. Pylint supports Sphinx, Google and Numpy dosctrs.

And I agree, vendored libs should be ignored.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/nerdvegas/rez/issues/51?email_source=notifications&email_token=AAMOUSXWKAESPI7OUTFBZNDQNPNAHA5CNFSM4AM4MDB2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEASJWMY#issuecomment-539269939, or mute the thread https://github.com/notifications/unsubscribe-auth/AAMOUSVRHKLXDDPRNUIIATTQNPNAHANCNFSM4AM4MDBQ .

nerdvegas avatar Oct 08 '19 01:10 nerdvegas