# This script was generated by crazy-complete.
# crazy-complete: A tool that creates robust and reliable autocompletion scripts for Bash, Fish and Zsh.
# For more information, visit: https://github.com/crazy-complete/crazy-complete

_pylint_compgen_w_replacement() {
  local cur word append=0

  [[ "$1" == "-a" ]] && { shift; append=1; }
  [[ "$1" == "--" ]] && { shift; }

  cur="$1"
  shift

  (( append )) || COMPREPLY=()

  for word; do
    if [[ "$word" == "$cur"* ]]; then
      COMPREPLY+=("$(printf '%q' "$word")")
    fi
  done
}

_pylint_value_list() {
  local separator="$1"; shift
  local -a values=("$@")
  local -a having_values

  if [[ -z "$cur" ]]; then
    COMPREPLY=("${values[@]}")
    return
  fi

  IFS="$separator" read -r -a having_values <<< "$cur"

  local -a remaining_values=()
  local value having_value found_value

  for value in "${values[@]}"; do
    found_value=false

    for having_value in "${having_values[@]}"; do
      if [[ "$value" == "$having_value" ]]; then
        found_value=true
        break
      fi
    done

    if ! $found_value; then
      remaining_values+=("$value")
    fi
  done

  COMPREPLY=()

  if [[ "${cur: -1}" == "$separator" ]]; then
    for value in "${remaining_values[@]}"; do
      COMPREPLY+=("$cur$value")
    done
  elif (( ${#having_values[@]} )); then
    local cur_last_value=${having_values[-1]}

    for value in "${remaining_values[@]}"; do
      if [[ "$value" == "$cur_last_value"* ]]; then
        COMPREPLY+=("${cur%"$cur_last_value"}$value")
      fi
    done
  fi
}

_pylint_prefix_compreply() {
  local i=0 prefix="$1"
  for ((i=0; i < ${#COMPREPLY[@]}; ++i)); do
    COMPREPLY[i]="$prefix${COMPREPLY[i]}"
  done
}

_pylint_parse_commandline() {
  POSITIONALS=()
  END_OF_OPTIONS=0
  POSITIONAL_NUM=0

  local cmd="${words[0]}" argi arg i char trailing_chars

  for ((argi=1; argi < ${#words[@]} - 1; ++argi)); do
    arg="${words[argi]}"

    case "$arg" in
      --)
        END_OF_OPTIONS=1
        for ((++argi; argi < ${#words[@]}; ++argi)); do
          POSITIONALS[POSITIONAL_NUM++]="${words[argi]}"
        done
        break;;
      -)
        POSITIONALS[POSITIONAL_NUM++]="-";;
      -*)
        case "$cmd" in pylint)
          case "$arg" in
            --help)
              OPT_help+=(_OPT_ISSET_)
              continue;;
            --rcfile)
              OPT_rcfile+=("${words[++argi]}")
              continue;;
            --rcfile=*)
              OPT_rcfile+=("${arg#*=}")
              continue;;
            --output)
              OPT_output+=("${words[++argi]}")
              continue;;
            --output=*)
              OPT_output+=("${arg#*=}")
              continue;;
            --help-msg)
              OPT_help_msg+=("${words[++argi]}")
              continue;;
            --help-msg=*)
              OPT_help_msg+=("${arg#*=}")
              continue;;
            --list-msgs)
              OPT_list_msgs+=(_OPT_ISSET_)
              continue;;
            --list-msgs-enabled)
              OPT_list_msgs_enabled+=(_OPT_ISSET_)
              continue;;
            --list-groups)
              OPT_list_groups+=(_OPT_ISSET_)
              continue;;
            --list-conf-levels)
              OPT_list_conf_levels+=(_OPT_ISSET_)
              continue;;
            --list-extensions)
              OPT_list_extensions+=(_OPT_ISSET_)
              continue;;
            --full-documentation)
              OPT_full_documentation+=(_OPT_ISSET_)
              continue;;
            --generate-rcfile)
              OPT_generate_rcfile+=(_OPT_ISSET_)
              continue;;
            --generate-toml-config)
              OPT_generate_toml_config+=(_OPT_ISSET_)
              continue;;
            --long-help)
              OPT_long_help+=(_OPT_ISSET_)
              continue;;
            --init-hook)
              OPT_init_hook+=("${words[++argi]}")
              continue;;
            --init-hook=*)
              OPT_init_hook+=("${arg#*=}")
              continue;;
            --errors-only)
              OPT_errors_only+=(_OPT_ISSET_)
              continue;;
            --verbose)
              OPT_verbose+=(_OPT_ISSET_)
              continue;;
            --enable-all-extensions)
              OPT_enable_all_extensions+=(_OPT_ISSET_)
              continue;;
            --ignore)
              OPT_ignore+=("${words[++argi]}")
              continue;;
            --ignore=*)
              OPT_ignore+=("${arg#*=}")
              continue;;
            --ignore-patterns)
              OPT_ignore_patterns+=("${words[++argi]}")
              continue;;
            --ignore-patterns=*)
              OPT_ignore_patterns+=("${arg#*=}")
              continue;;
            --ignore-paths)
              OPT_ignore_paths+=("${words[++argi]}")
              continue;;
            --ignore-paths=*)
              OPT_ignore_paths+=("${arg#*=}")
              continue;;
            --persistent)
              OPT_persistent+=("${words[++argi]}")
              continue;;
            --persistent=*)
              OPT_persistent+=("${arg#*=}")
              continue;;
            --load-plugins)
              OPT_load_plugins+=("${words[++argi]}")
              continue;;
            --load-plugins=*)
              OPT_load_plugins+=("${arg#*=}")
              continue;;
            --fail-under)
              OPT_fail_under+=("${words[++argi]}")
              continue;;
            --fail-under=*)
              OPT_fail_under+=("${arg#*=}")
              continue;;
            --fail-on)
              OPT_fail_on+=("${words[++argi]}")
              continue;;
            --fail-on=*)
              OPT_fail_on+=("${arg#*=}")
              continue;;
            --jobs)
              OPT_jobs+=("${words[++argi]}")
              continue;;
            --jobs=*)
              OPT_jobs+=("${arg#*=}")
              continue;;
            --limit-inference-results)
              OPT_limit_inference_results+=("${words[++argi]}")
              continue;;
            --limit-inference-results=*)
              OPT_limit_inference_results+=("${arg#*=}")
              continue;;
            --extension-pkg-allow-list)
              OPT_extension_pkg_allow_list+=("${words[++argi]}")
              continue;;
            --extension-pkg-allow-list=*)
              OPT_extension_pkg_allow_list+=("${arg#*=}")
              continue;;
            --extension-pkg-whitelist)
              OPT_extension_pkg_whitelist+=("${words[++argi]}")
              continue;;
            --extension-pkg-whitelist=*)
              OPT_extension_pkg_whitelist+=("${arg#*=}")
              continue;;
            --suggestion-mode)
              OPT_suggestion_mode+=("${words[++argi]}")
              continue;;
            --suggestion-mode=*)
              OPT_suggestion_mode+=("${arg#*=}")
              continue;;
            --exit-zero)
              OPT_exit_zero+=(_OPT_ISSET_)
              continue;;
            --from-stdin)
              OPT_from_stdin+=(_OPT_ISSET_)
              continue;;
            --source-roots)
              OPT_source_roots+=("${words[++argi]}")
              continue;;
            --source-roots=*)
              OPT_source_roots+=("${arg#*=}")
              continue;;
            --recursive)
              OPT_recursive+=("${words[++argi]}")
              continue;;
            --recursive=*)
              OPT_recursive+=("${arg#*=}")
              continue;;
            --py-version)
              OPT_py_version+=("${words[++argi]}")
              continue;;
            --py-version=*)
              OPT_py_version+=("${arg#*=}")
              continue;;
            --ignored-modules)
              OPT_ignored_modules+=("${words[++argi]}")
              continue;;
            --ignored-modules=*)
              OPT_ignored_modules+=("${arg#*=}")
              continue;;
            --analyse-fallback-blocks)
              OPT_analyse_fallback_blocks+=("${words[++argi]}")
              continue;;
            --analyse-fallback-blocks=*)
              OPT_analyse_fallback_blocks+=("${arg#*=}")
              continue;;
            --clear-cache-post-run)
              OPT_clear_cache_post_run+=("${words[++argi]}")
              continue;;
            --clear-cache-post-run=*)
              OPT_clear_cache_post_run+=("${arg#*=}")
              continue;;
            --prefer-stubs)
              OPT_prefer_stubs+=("${words[++argi]}")
              continue;;
            --prefer-stubs=*)
              OPT_prefer_stubs+=("${arg#*=}")
              continue;;
            --output-format)
              OPT_output_format+=("${words[++argi]}")
              continue;;
            --output-format=*)
              OPT_output_format+=("${arg#*=}")
              continue;;
            --reports)
              OPT_reports+=("${words[++argi]}")
              continue;;
            --reports=*)
              OPT_reports+=("${arg#*=}")
              continue;;
            --evaluation)
              OPT_evaluation+=("${words[++argi]}")
              continue;;
            --evaluation=*)
              OPT_evaluation+=("${arg#*=}")
              continue;;
            --score)
              OPT_score+=("${words[++argi]}")
              continue;;
            --score=*)
              OPT_score+=("${arg#*=}")
              continue;;
            --msg-template)
              OPT_msg_template+=("${words[++argi]}")
              continue;;
            --msg-template=*)
              OPT_msg_template+=("${arg#*=}")
              continue;;
            --confidence)
              OPT_confidence+=("${words[++argi]}")
              continue;;
            --confidence=*)
              OPT_confidence+=("${arg#*=}")
              continue;;
            --enable)
              OPT_enable+=("${words[++argi]}")
              continue;;
            --enable=*)
              OPT_enable+=("${arg#*=}")
              continue;;
            --disable)
              OPT_disable+=("${words[++argi]}")
              continue;;
            --disable=*)
              OPT_disable+=("${arg#*=}")
              continue;;
            --min-similarity-lines)
              OPT_min_similarity_lines+=("${words[++argi]}")
              continue;;
            --min-similarity-lines=*)
              OPT_min_similarity_lines+=("${arg#*=}")
              continue;;
            --ignore-comments)
              OPT_ignore_comments+=("${words[++argi]}")
              continue;;
            --ignore-comments=*)
              OPT_ignore_comments+=("${arg#*=}")
              continue;;
            --ignore-docstrings)
              OPT_ignore_docstrings+=("${words[++argi]}")
              continue;;
            --ignore-docstrings=*)
              OPT_ignore_docstrings+=("${arg#*=}")
              continue;;
            --ignore-imports)
              OPT_ignore_imports+=("${words[++argi]}")
              continue;;
            --ignore-imports=*)
              OPT_ignore_imports+=("${arg#*=}")
              continue;;
            --ignore-signatures)
              OPT_ignore_signatures+=("${words[++argi]}")
              continue;;
            --ignore-signatures=*)
              OPT_ignore_signatures+=("${arg#*=}")
              continue;;
            --ignore-on-opaque-inference)
              OPT_ignore_on_opaque_inference+=("${words[++argi]}")
              continue;;
            --ignore-on-opaque-inference=*)
              OPT_ignore_on_opaque_inference+=("${arg#*=}")
              continue;;
            --mixin-class-rgx)
              OPT_mixin_class_rgx+=("${words[++argi]}")
              continue;;
            --mixin-class-rgx=*)
              OPT_mixin_class_rgx+=("${arg#*=}")
              continue;;
            --ignore-mixin-members)
              OPT_ignore_mixin_members+=("${words[++argi]}")
              continue;;
            --ignore-mixin-members=*)
              OPT_ignore_mixin_members+=("${arg#*=}")
              continue;;
            --ignored-checks-for-mixins)
              OPT_ignored_checks_for_mixins+=("${words[++argi]}")
              continue;;
            --ignored-checks-for-mixins=*)
              OPT_ignored_checks_for_mixins+=("${arg#*=}")
              continue;;
            --ignore-none)
              OPT_ignore_none+=("${words[++argi]}")
              continue;;
            --ignore-none=*)
              OPT_ignore_none+=("${arg#*=}")
              continue;;
            --ignored-classes)
              OPT_ignored_classes+=("${words[++argi]}")
              continue;;
            --ignored-classes=*)
              OPT_ignored_classes+=("${arg#*=}")
              continue;;
            --generated-members)
              OPT_generated_members+=("${words[++argi]}")
              continue;;
            --generated-members=*)
              OPT_generated_members+=("${arg#*=}")
              continue;;
            --contextmanager-decorators)
              OPT_contextmanager_decorators+=("${words[++argi]}")
              continue;;
            --contextmanager-decorators=*)
              OPT_contextmanager_decorators+=("${arg#*=}")
              continue;;
            --missing-member-hint-distance)
              OPT_missing_member_hint_distance+=("${words[++argi]}")
              continue;;
            --missing-member-hint-distance=*)
              OPT_missing_member_hint_distance+=("${arg#*=}")
              continue;;
            --missing-member-max-choices)
              OPT_missing_member_max_choices+=("${words[++argi]}")
              continue;;
            --missing-member-max-choices=*)
              OPT_missing_member_max_choices+=("${arg#*=}")
              continue;;
            --missing-member-hint)
              OPT_missing_member_hint+=("${words[++argi]}")
              continue;;
            --missing-member-hint=*)
              OPT_missing_member_hint+=("${arg#*=}")
              continue;;
            --signature-mutators)
              OPT_signature_mutators+=("${words[++argi]}")
              continue;;
            --signature-mutators=*)
              OPT_signature_mutators+=("${arg#*=}")
              continue;;
            --notes)
              OPT_notes+=("${words[++argi]}")
              continue;;
            --notes=*)
              OPT_notes+=("${arg#*=}")
              continue;;
            --notes-rgx)
              OPT_notes_rgx+=("${words[++argi]}")
              continue;;
            --notes-rgx=*)
              OPT_notes_rgx+=("${arg#*=}")
              continue;;
            --timeout-methods)
              OPT_timeout_methods+=("${words[++argi]}")
              continue;;
            --timeout-methods=*)
              OPT_timeout_methods+=("${arg#*=}")
              continue;;
            --spelling-dict)
              OPT_spelling_dict+=("${words[++argi]}")
              continue;;
            --spelling-dict=*)
              OPT_spelling_dict+=("${arg#*=}")
              continue;;
            --spelling-ignore-words)
              OPT_spelling_ignore_words+=("${words[++argi]}")
              continue;;
            --spelling-ignore-words=*)
              OPT_spelling_ignore_words+=("${arg#*=}")
              continue;;
            --spelling-private-dict-file)
              OPT_spelling_private_dict_file+=("${words[++argi]}")
              continue;;
            --spelling-private-dict-file=*)
              OPT_spelling_private_dict_file+=("${arg#*=}")
              continue;;
            --spelling-store-unknown-words)
              OPT_spelling_store_unknown_words+=("${words[++argi]}")
              continue;;
            --spelling-store-unknown-words=*)
              OPT_spelling_store_unknown_words+=("${arg#*=}")
              continue;;
            --max-spelling-suggestions)
              OPT_max_spelling_suggestions+=("${words[++argi]}")
              continue;;
            --max-spelling-suggestions=*)
              OPT_max_spelling_suggestions+=("${arg#*=}")
              continue;;
            --spelling-ignore-comment-directives)
              OPT_spelling_ignore_comment_directives+=("${words[++argi]}")
              continue;;
            --spelling-ignore-comment-directives=*)
              OPT_spelling_ignore_comment_directives+=("${arg#*=}")
              continue;;
            --max-nested-blocks)
              OPT_max_nested_blocks+=("${words[++argi]}")
              continue;;
            --max-nested-blocks=*)
              OPT_max_nested_blocks+=("${arg#*=}")
              continue;;
            --never-returning-functions)
              OPT_never_returning_functions+=("${words[++argi]}")
              continue;;
            --never-returning-functions=*)
              OPT_never_returning_functions+=("${arg#*=}")
              continue;;
            --suggest-join-with-non-empty-separator)
              OPT_suggest_join_with_non_empty_separator+=("${words[++argi]}")
              continue;;
            --suggest-join-with-non-empty-separator=*)
              OPT_suggest_join_with_non_empty_separator+=("${arg#*=}")
              continue;;
            --check-str-concat-over-line-jumps)
              OPT_check_str_concat_over_line_jumps+=("${words[++argi]}")
              continue;;
            --check-str-concat-over-line-jumps=*)
              OPT_check_str_concat_over_line_jumps+=("${arg#*=}")
              continue;;
            --check-quote-consistency)
              OPT_check_quote_consistency+=("${words[++argi]}")
              continue;;
            --check-quote-consistency=*)
              OPT_check_quote_consistency+=("${arg#*=}")
              continue;;
            --max-args)
              OPT_max_args+=("${words[++argi]}")
              continue;;
            --max-args=*)
              OPT_max_args+=("${arg#*=}")
              continue;;
            --max-positional-arguments)
              OPT_max_positional_arguments+=("${words[++argi]}")
              continue;;
            --max-positional-arguments=*)
              OPT_max_positional_arguments+=("${arg#*=}")
              continue;;
            --max-locals)
              OPT_max_locals+=("${words[++argi]}")
              continue;;
            --max-locals=*)
              OPT_max_locals+=("${arg#*=}")
              continue;;
            --max-returns)
              OPT_max_returns+=("${words[++argi]}")
              continue;;
            --max-returns=*)
              OPT_max_returns+=("${arg#*=}")
              continue;;
            --max-branches)
              OPT_max_branches+=("${words[++argi]}")
              continue;;
            --max-branches=*)
              OPT_max_branches+=("${arg#*=}")
              continue;;
            --max-statements)
              OPT_max_statements+=("${words[++argi]}")
              continue;;
            --max-statements=*)
              OPT_max_statements+=("${arg#*=}")
              continue;;
            --max-parents)
              OPT_max_parents+=("${words[++argi]}")
              continue;;
            --max-parents=*)
              OPT_max_parents+=("${arg#*=}")
              continue;;
            --ignored-parents)
              OPT_ignored_parents+=("${words[++argi]}")
              continue;;
            --ignored-parents=*)
              OPT_ignored_parents+=("${arg#*=}")
              continue;;
            --max-attributes)
              OPT_max_attributes+=("${words[++argi]}")
              continue;;
            --max-attributes=*)
              OPT_max_attributes+=("${arg#*=}")
              continue;;
            --min-public-methods)
              OPT_min_public_methods+=("${words[++argi]}")
              continue;;
            --min-public-methods=*)
              OPT_min_public_methods+=("${arg#*=}")
              continue;;
            --max-public-methods)
              OPT_max_public_methods+=("${words[++argi]}")
              continue;;
            --max-public-methods=*)
              OPT_max_public_methods+=("${arg#*=}")
              continue;;
            --max-bool-expr)
              OPT_max_bool_expr+=("${words[++argi]}")
              continue;;
            --max-bool-expr=*)
              OPT_max_bool_expr+=("${arg#*=}")
              continue;;
            --exclude-too-few-public-methods)
              OPT_exclude_too_few_public_methods+=("${words[++argi]}")
              continue;;
            --exclude-too-few-public-methods=*)
              OPT_exclude_too_few_public_methods+=("${arg#*=}")
              continue;;
            --overgeneral-exceptions)
              OPT_overgeneral_exceptions+=("${words[++argi]}")
              continue;;
            --overgeneral-exceptions=*)
              OPT_overgeneral_exceptions+=("${arg#*=}")
              continue;;
            --defining-attr-methods)
              OPT_defining_attr_methods+=("${words[++argi]}")
              continue;;
            --defining-attr-methods=*)
              OPT_defining_attr_methods+=("${arg#*=}")
              continue;;
            --valid-classmethod-first-arg)
              OPT_valid_classmethod_first_arg+=("${words[++argi]}")
              continue;;
            --valid-classmethod-first-arg=*)
              OPT_valid_classmethod_first_arg+=("${arg#*=}")
              continue;;
            --valid-metaclass-classmethod-first-arg)
              OPT_valid_metaclass_classmethod_first_arg+=("${words[++argi]}")
              continue;;
            --valid-metaclass-classmethod-first-arg=*)
              OPT_valid_metaclass_classmethod_first_arg+=("${arg#*=}")
              continue;;
            --exclude-protected)
              OPT_exclude_protected+=("${words[++argi]}")
              continue;;
            --exclude-protected=*)
              OPT_exclude_protected+=("${arg#*=}")
              continue;;
            --check-protected-access-in-special-methods)
              OPT_check_protected_access_in_special_methods+=("${words[++argi]}")
              continue;;
            --check-protected-access-in-special-methods=*)
              OPT_check_protected_access_in_special_methods+=("${arg#*=}")
              continue;;
            --max-line-length)
              OPT_max_line_length+=("${words[++argi]}")
              continue;;
            --max-line-length=*)
              OPT_max_line_length+=("${arg#*=}")
              continue;;
            --ignore-long-lines)
              OPT_ignore_long_lines+=("${words[++argi]}")
              continue;;
            --ignore-long-lines=*)
              OPT_ignore_long_lines+=("${arg#*=}")
              continue;;
            --single-line-if-stmt)
              OPT_single_line_if_stmt+=("${words[++argi]}")
              continue;;
            --single-line-if-stmt=*)
              OPT_single_line_if_stmt+=("${arg#*=}")
              continue;;
            --single-line-class-stmt)
              OPT_single_line_class_stmt+=("${words[++argi]}")
              continue;;
            --single-line-class-stmt=*)
              OPT_single_line_class_stmt+=("${arg#*=}")
              continue;;
            --max-module-lines)
              OPT_max_module_lines+=("${words[++argi]}")
              continue;;
            --max-module-lines=*)
              OPT_max_module_lines+=("${arg#*=}")
              continue;;
            --indent-string)
              OPT_indent_string+=("${words[++argi]}")
              continue;;
            --indent-string=*)
              OPT_indent_string+=("${arg#*=}")
              continue;;
            --indent-after-paren)
              OPT_indent_after_paren+=("${words[++argi]}")
              continue;;
            --indent-after-paren=*)
              OPT_indent_after_paren+=("${arg#*=}")
              continue;;
            --expected-line-ending-format)
              OPT_expected_line_ending_format+=("${words[++argi]}")
              continue;;
            --expected-line-ending-format=*)
              OPT_expected_line_ending_format+=("${arg#*=}")
              continue;;
            --good-names)
              OPT_good_names+=("${words[++argi]}")
              continue;;
            --good-names=*)
              OPT_good_names+=("${arg#*=}")
              continue;;
            --good-names-rgxs)
              OPT_good_names_rgxs+=("${words[++argi]}")
              continue;;
            --good-names-rgxs=*)
              OPT_good_names_rgxs+=("${arg#*=}")
              continue;;
            --bad-names)
              OPT_bad_names+=("${words[++argi]}")
              continue;;
            --bad-names=*)
              OPT_bad_names+=("${arg#*=}")
              continue;;
            --bad-names-rgxs)
              OPT_bad_names_rgxs+=("${words[++argi]}")
              continue;;
            --bad-names-rgxs=*)
              OPT_bad_names_rgxs+=("${arg#*=}")
              continue;;
            --name-group)
              OPT_name_group+=("${words[++argi]}")
              continue;;
            --name-group=*)
              OPT_name_group+=("${arg#*=}")
              continue;;
            --include-naming-hint)
              OPT_include_naming_hint+=("${words[++argi]}")
              continue;;
            --include-naming-hint=*)
              OPT_include_naming_hint+=("${arg#*=}")
              continue;;
            --property-classes)
              OPT_property_classes+=("${words[++argi]}")
              continue;;
            --property-classes=*)
              OPT_property_classes+=("${arg#*=}")
              continue;;
            --argument-naming-style)
              OPT_argument_naming_style+=("${words[++argi]}")
              continue;;
            --argument-naming-style=*)
              OPT_argument_naming_style+=("${arg#*=}")
              continue;;
            --argument-rgx)
              OPT_argument_rgx+=("${words[++argi]}")
              continue;;
            --argument-rgx=*)
              OPT_argument_rgx+=("${arg#*=}")
              continue;;
            --attr-naming-style)
              OPT_attr_naming_style+=("${words[++argi]}")
              continue;;
            --attr-naming-style=*)
              OPT_attr_naming_style+=("${arg#*=}")
              continue;;
            --attr-rgx)
              OPT_attr_rgx+=("${words[++argi]}")
              continue;;
            --attr-rgx=*)
              OPT_attr_rgx+=("${arg#*=}")
              continue;;
            --class-naming-style)
              OPT_class_naming_style+=("${words[++argi]}")
              continue;;
            --class-naming-style=*)
              OPT_class_naming_style+=("${arg#*=}")
              continue;;
            --class-rgx)
              OPT_class_rgx+=("${words[++argi]}")
              continue;;
            --class-rgx=*)
              OPT_class_rgx+=("${arg#*=}")
              continue;;
            --class-attribute-naming-style)
              OPT_class_attribute_naming_style+=("${words[++argi]}")
              continue;;
            --class-attribute-naming-style=*)
              OPT_class_attribute_naming_style+=("${arg#*=}")
              continue;;
            --class-attribute-rgx)
              OPT_class_attribute_rgx+=("${words[++argi]}")
              continue;;
            --class-attribute-rgx=*)
              OPT_class_attribute_rgx+=("${arg#*=}")
              continue;;
            --class-const-naming-style)
              OPT_class_const_naming_style+=("${words[++argi]}")
              continue;;
            --class-const-naming-style=*)
              OPT_class_const_naming_style+=("${arg#*=}")
              continue;;
            --class-const-rgx)
              OPT_class_const_rgx+=("${words[++argi]}")
              continue;;
            --class-const-rgx=*)
              OPT_class_const_rgx+=("${arg#*=}")
              continue;;
            --const-naming-style)
              OPT_const_naming_style+=("${words[++argi]}")
              continue;;
            --const-naming-style=*)
              OPT_const_naming_style+=("${arg#*=}")
              continue;;
            --const-rgx)
              OPT_const_rgx+=("${words[++argi]}")
              continue;;
            --const-rgx=*)
              OPT_const_rgx+=("${arg#*=}")
              continue;;
            --function-naming-style)
              OPT_function_naming_style+=("${words[++argi]}")
              continue;;
            --function-naming-style=*)
              OPT_function_naming_style+=("${arg#*=}")
              continue;;
            --function-rgx)
              OPT_function_rgx+=("${words[++argi]}")
              continue;;
            --function-rgx=*)
              OPT_function_rgx+=("${arg#*=}")
              continue;;
            --inlinevar-naming-style)
              OPT_inlinevar_naming_style+=("${words[++argi]}")
              continue;;
            --inlinevar-naming-style=*)
              OPT_inlinevar_naming_style+=("${arg#*=}")
              continue;;
            --inlinevar-rgx)
              OPT_inlinevar_rgx+=("${words[++argi]}")
              continue;;
            --inlinevar-rgx=*)
              OPT_inlinevar_rgx+=("${arg#*=}")
              continue;;
            --method-naming-style)
              OPT_method_naming_style+=("${words[++argi]}")
              continue;;
            --method-naming-style=*)
              OPT_method_naming_style+=("${arg#*=}")
              continue;;
            --method-rgx)
              OPT_method_rgx+=("${words[++argi]}")
              continue;;
            --method-rgx=*)
              OPT_method_rgx+=("${arg#*=}")
              continue;;
            --module-naming-style)
              OPT_module_naming_style+=("${words[++argi]}")
              continue;;
            --module-naming-style=*)
              OPT_module_naming_style+=("${arg#*=}")
              continue;;
            --module-rgx)
              OPT_module_rgx+=("${words[++argi]}")
              continue;;
            --module-rgx=*)
              OPT_module_rgx+=("${arg#*=}")
              continue;;
            --typealias-rgx)
              OPT_typealias_rgx+=("${words[++argi]}")
              continue;;
            --typealias-rgx=*)
              OPT_typealias_rgx+=("${arg#*=}")
              continue;;
            --typevar-rgx)
              OPT_typevar_rgx+=("${words[++argi]}")
              continue;;
            --typevar-rgx=*)
              OPT_typevar_rgx+=("${arg#*=}")
              continue;;
            --variable-naming-style)
              OPT_variable_naming_style+=("${words[++argi]}")
              continue;;
            --variable-naming-style=*)
              OPT_variable_naming_style+=("${arg#*=}")
              continue;;
            --variable-rgx)
              OPT_variable_rgx+=("${words[++argi]}")
              continue;;
            --variable-rgx=*)
              OPT_variable_rgx+=("${arg#*=}")
              continue;;
            --no-docstring-rgx)
              OPT_no_docstring_rgx+=("${words[++argi]}")
              continue;;
            --no-docstring-rgx=*)
              OPT_no_docstring_rgx+=("${arg#*=}")
              continue;;
            --docstring-min-length)
              OPT_docstring_min_length+=("${words[++argi]}")
              continue;;
            --docstring-min-length=*)
              OPT_docstring_min_length+=("${arg#*=}")
              continue;;
            --init-import)
              OPT_init_import+=("${words[++argi]}")
              continue;;
            --init-import=*)
              OPT_init_import+=("${arg#*=}")
              continue;;
            --dummy-variables-rgx)
              OPT_dummy_variables_rgx+=("${words[++argi]}")
              continue;;
            --dummy-variables-rgx=*)
              OPT_dummy_variables_rgx+=("${arg#*=}")
              continue;;
            --additional-builtins)
              OPT_additional_builtins+=("${words[++argi]}")
              continue;;
            --additional-builtins=*)
              OPT_additional_builtins+=("${arg#*=}")
              continue;;
            --callbacks)
              OPT_callbacks+=("${words[++argi]}")
              continue;;
            --callbacks=*)
              OPT_callbacks+=("${arg#*=}")
              continue;;
            --redefining-builtins-modules)
              OPT_redefining_builtins_modules+=("${words[++argi]}")
              continue;;
            --redefining-builtins-modules=*)
              OPT_redefining_builtins_modules+=("${arg#*=}")
              continue;;
            --ignored-argument-names)
              OPT_ignored_argument_names+=("${words[++argi]}")
              continue;;
            --ignored-argument-names=*)
              OPT_ignored_argument_names+=("${arg#*=}")
              continue;;
            --allow-global-unused-variables)
              OPT_allow_global_unused_variables+=("${words[++argi]}")
              continue;;
            --allow-global-unused-variables=*)
              OPT_allow_global_unused_variables+=("${arg#*=}")
              continue;;
            --allowed-redefined-builtins)
              OPT_allowed_redefined_builtins+=("${words[++argi]}")
              continue;;
            --allowed-redefined-builtins=*)
              OPT_allowed_redefined_builtins+=("${arg#*=}")
              continue;;
            --deprecated-modules)
              OPT_deprecated_modules+=("${words[++argi]}")
              continue;;
            --deprecated-modules=*)
              OPT_deprecated_modules+=("${arg#*=}")
              continue;;
            --preferred-modules)
              OPT_preferred_modules+=("${words[++argi]}")
              continue;;
            --preferred-modules=*)
              OPT_preferred_modules+=("${arg#*=}")
              continue;;
            --import-graph)
              OPT_import_graph+=("${words[++argi]}")
              continue;;
            --import-graph=*)
              OPT_import_graph+=("${arg#*=}")
              continue;;
            --ext-import-graph)
              OPT_ext_import_graph+=("${words[++argi]}")
              continue;;
            --ext-import-graph=*)
              OPT_ext_import_graph+=("${arg#*=}")
              continue;;
            --int-import-graph)
              OPT_int_import_graph+=("${words[++argi]}")
              continue;;
            --int-import-graph=*)
              OPT_int_import_graph+=("${arg#*=}")
              continue;;
            --known-standard-library)
              OPT_known_standard_library+=("${words[++argi]}")
              continue;;
            --known-standard-library=*)
              OPT_known_standard_library+=("${arg#*=}")
              continue;;
            --known-third-party)
              OPT_known_third_party+=("${words[++argi]}")
              continue;;
            --known-third-party=*)
              OPT_known_third_party+=("${arg#*=}")
              continue;;
            --allow-any-import-level)
              OPT_allow_any_import_level+=("${words[++argi]}")
              continue;;
            --allow-any-import-level=*)
              OPT_allow_any_import_level+=("${arg#*=}")
              continue;;
            --allow-wildcard-with-all)
              OPT_allow_wildcard_with_all+=("${words[++argi]}")
              continue;;
            --allow-wildcard-with-all=*)
              OPT_allow_wildcard_with_all+=("${arg#*=}")
              continue;;
            --allow-reexport-from-package)
              OPT_allow_reexport_from_package+=("${words[++argi]}")
              continue;;
            --allow-reexport-from-package=*)
              OPT_allow_reexport_from_package+=("${arg#*=}")
              continue;;
            --logging-modules)
              OPT_logging_modules+=("${words[++argi]}")
              continue;;
            --logging-modules=*)
              OPT_logging_modules+=("${arg#*=}")
              continue;;
            --logging-format-style)
              OPT_logging_format_style+=("${words[++argi]}")
              continue;;
            --logging-format-style=*)
              OPT_logging_format_style+=("${arg#*=}")
              continue;;
          esac
        esac
        for ((i=1; i < ${#arg}; ++i)); do
          char="${arg:$i:1}"
          trailing_chars="${arg:$((i + 1))}"
          case "$cmd" in pylint)
            case "$char" in
              h)
                OPT_help+=(_OPT_ISSET_);;
              E)
                OPT_errors_only+=(_OPT_ISSET_);;
              v)
                OPT_verbose+=(_OPT_ISSET_);;
              j)
                if [[ -n "$trailing_chars" ]]
                then OPT_jobs+=("$trailing_chars")
                else OPT_jobs+=("${words[++argi]}")
                fi
                continue 2;;
              f)
                if [[ -n "$trailing_chars" ]]
                then OPT_output_format+=("$trailing_chars")
                else OPT_output_format+=("${words[++argi]}")
                fi
                continue 2;;
              r)
                if [[ -n "$trailing_chars" ]]
                then OPT_reports+=("$trailing_chars")
                else OPT_reports+=("${words[++argi]}")
                fi
                continue 2;;
              s)
                if [[ -n "$trailing_chars" ]]
                then OPT_score+=("$trailing_chars")
                else OPT_score+=("${words[++argi]}")
                fi
                continue 2;;
              e)
                if [[ -n "$trailing_chars" ]]
                then OPT_enable+=("$trailing_chars")
                else OPT_enable+=("${words[++argi]}")
                fi
                continue 2;;
              d)
                if [[ -n "$trailing_chars" ]]
                then OPT_disable+=("$trailing_chars")
                else OPT_disable+=("${words[++argi]}")
                fi
                continue 2;;
            esac
          esac
        done;;
      *)
        POSITIONALS[POSITIONAL_NUM++]="$arg"
        ;;
    esac
  done

  for ((; argi < ${#words[@]}; ++argi)); do
    arg="${words[$argi]}"

    case "$arg" in
      -) POSITIONALS[POSITIONAL_NUM++]="$arg";;
      -*);;
      *) POSITIONALS[POSITIONAL_NUM++]="$arg";;
    esac
  done
}

_pylint() {
  local cur prev words cword split
  _init_completion -n = || return

  local END_OF_OPTIONS POSITIONALS POSITIONAL_NUM
  local -a OPT_help OPT_rcfile OPT_output OPT_help_msg OPT_list_msgs OPT_list_msgs_enabled OPT_list_groups OPT_list_conf_levels OPT_list_extensions OPT_full_documentation OPT_generate_rcfile OPT_generate_toml_config OPT_long_help OPT_init_hook OPT_errors_only OPT_verbose OPT_enable_all_extensions OPT_ignore OPT_ignore_patterns OPT_ignore_paths OPT_persistent OPT_load_plugins OPT_fail_under OPT_fail_on OPT_jobs OPT_limit_inference_results OPT_extension_pkg_allow_list OPT_extension_pkg_whitelist OPT_suggestion_mode OPT_exit_zero OPT_from_stdin OPT_source_roots OPT_recursive OPT_py_version OPT_ignored_modules OPT_analyse_fallback_blocks OPT_clear_cache_post_run OPT_prefer_stubs OPT_output_format OPT_reports OPT_evaluation OPT_score OPT_msg_template OPT_confidence OPT_enable OPT_disable OPT_min_similarity_lines OPT_ignore_comments OPT_ignore_docstrings OPT_ignore_imports OPT_ignore_signatures OPT_ignore_on_opaque_inference OPT_mixin_class_rgx OPT_ignore_mixin_members OPT_ignored_checks_for_mixins OPT_ignore_none OPT_ignored_classes OPT_generated_members OPT_contextmanager_decorators OPT_missing_member_hint_distance OPT_missing_member_max_choices OPT_missing_member_hint OPT_signature_mutators OPT_notes OPT_notes_rgx OPT_timeout_methods OPT_spelling_dict OPT_spelling_ignore_words OPT_spelling_private_dict_file OPT_spelling_store_unknown_words OPT_max_spelling_suggestions OPT_spelling_ignore_comment_directives OPT_max_nested_blocks OPT_never_returning_functions OPT_suggest_join_with_non_empty_separator OPT_check_str_concat_over_line_jumps OPT_check_quote_consistency OPT_max_args OPT_max_positional_arguments OPT_max_locals OPT_max_returns OPT_max_branches OPT_max_statements OPT_max_parents OPT_ignored_parents OPT_max_attributes OPT_min_public_methods OPT_max_public_methods OPT_max_bool_expr OPT_exclude_too_few_public_methods OPT_overgeneral_exceptions OPT_defining_attr_methods OPT_valid_classmethod_first_arg OPT_valid_metaclass_classmethod_first_arg OPT_exclude_protected OPT_check_protected_access_in_special_methods OPT_max_line_length OPT_ignore_long_lines OPT_single_line_if_stmt OPT_single_line_class_stmt OPT_max_module_lines OPT_indent_string OPT_indent_after_paren OPT_expected_line_ending_format OPT_good_names OPT_good_names_rgxs OPT_bad_names OPT_bad_names_rgxs OPT_name_group OPT_include_naming_hint OPT_property_classes OPT_argument_naming_style OPT_argument_rgx OPT_attr_naming_style OPT_attr_rgx OPT_class_naming_style OPT_class_rgx OPT_class_attribute_naming_style OPT_class_attribute_rgx OPT_class_const_naming_style OPT_class_const_rgx OPT_const_naming_style OPT_const_rgx OPT_function_naming_style OPT_function_rgx OPT_inlinevar_naming_style OPT_inlinevar_rgx OPT_method_naming_style OPT_method_rgx OPT_module_naming_style OPT_module_rgx OPT_typealias_rgx OPT_typevar_rgx OPT_variable_naming_style OPT_variable_rgx OPT_no_docstring_rgx OPT_docstring_min_length OPT_init_import OPT_dummy_variables_rgx OPT_additional_builtins OPT_callbacks OPT_redefining_builtins_modules OPT_ignored_argument_names OPT_allow_global_unused_variables OPT_allowed_redefined_builtins OPT_deprecated_modules OPT_preferred_modules OPT_import_graph OPT_ext_import_graph OPT_int_import_graph OPT_known_standard_library OPT_known_third_party OPT_allow_any_import_level OPT_allow_wildcard_with_all OPT_allow_reexport_from_package OPT_logging_modules OPT_logging_format_style

  _pylint_parse_commandline

  __complete_option() {
    local opt="$1" cur="$2" mode="$3"

    case "$opt" in
      --rcfile|--output|--spelling-private-dict-file|--import-graph|--ext-import-graph|--int-import-graph)
        _filedir
        return 0;;
      --help-msg|--init-hook|--ignore|--ignore-patterns|--ignore-paths|--load-plugins|--fail-under|--jobs|-j|--limit-inference-results|--extension-pkg-allow-list|--extension-pkg-whitelist|--source-roots|--py-version|--ignored-modules|--output-format|-f|--evaluation|--msg-template|--confidence|--min-similarity-lines|--mixin-class-rgx|--ignored-checks-for-mixins|--ignored-classes|--generated-members|--contextmanager-decorators|--missing-member-hint-distance|--missing-member-max-choices|--missing-member-hint|--signature-mutators|--notes|--notes-rgx|--timeout-methods|--spelling-dict|--spelling-ignore-words|--max-spelling-suggestions|--spelling-ignore-comment-directives|--max-nested-blocks|--never-returning-functions|--max-args|--max-positional-arguments|--max-locals|--max-returns|--max-branches|--max-statements|--max-parents|--ignored-parents|--max-attributes|--min-public-methods|--max-public-methods|--max-bool-expr|--exclude-too-few-public-methods|--overgeneral-exceptions|--defining-attr-methods|--valid-classmethod-first-arg|--valid-metaclass-classmethod-first-arg|--exclude-protected|--max-line-length|--ignore-long-lines|--max-module-lines|--indent-string|--indent-after-paren|--expected-line-ending-format|--good-names|--good-names-rgxs|--bad-names|--bad-names-rgxs|--name-group|--property-classes|--argument-rgx|--attr-rgx|--class-rgx|--class-attribute-rgx|--class-const-rgx|--const-rgx|--function-rgx|--inlinevar-rgx|--method-rgx|--module-rgx|--typealias-rgx|--typevar-rgx|--variable-rgx|--no-docstring-rgx|--docstring-min-length|--dummy-variables-rgx|--additional-builtins|--callbacks|--redefining-builtins-modules|--ignored-argument-names|--allowed-redefined-builtins|--deprecated-modules|--preferred-modules|--known-standard-library|--known-third-party|--allow-any-import-level|--logging-modules)
        return 0;;
      --persistent|--suggestion-mode|--recursive|--analyse-fallback-blocks|--clear-cache-post-run|--prefer-stubs|--reports|-r|--score|-s|--ignore-comments|--ignore-docstrings|--ignore-imports|--ignore-signatures|--ignore-on-opaque-inference|--ignore-mixin-members|--ignore-none|--spelling-store-unknown-words|--suggest-join-with-non-empty-separator|--check-str-concat-over-line-jumps|--check-quote-consistency|--check-protected-access-in-special-methods|--single-line-if-stmt|--single-line-class-stmt|--include-naming-hint|--init-import|--allow-global-unused-variables|--allow-wildcard-with-all|--allow-reexport-from-package)
        _pylint_compgen_w_replacement -- "$cur" y n
        return 0;;
      --fail-on|--enable|-e|--disable|-d)
        _pylint_value_list , invalid-name disallowed-name typevar-name-incorrect-variance empty-docstring missing-module-docstring missing-class-docstring missing-function-docstring unnecessary-negation singleton-comparison unidiomatic-typecheck typevar-double-variance typevar-name-mismatch consider-using-enumerate consider-iterating-dictionary bad-classmethod-argument bad-mcs-method-argument bad-mcs-classmethod-argument single-string-used-for-slots consider-using-dict-items use-maxsplit-arg use-sequence-for-iteration consider-using-f-string line-too-long too-many-lines trailing-whitespace missing-final-newline trailing-newlines multiple-statements superfluous-parens mixed-line-endings unexpected-line-ending-format wrong-spelling-in-comment wrong-spelling-in-docstring invalid-characters-in-docstring multiple-imports wrong-import-order ungrouped-imports wrong-import-position useless-import-alias import-outside-toplevel use-implicit-booleaness-not-len use-implicit-booleaness-not-comparison use-implicit-booleaness-not-comparison-to-string use-implicit-booleaness-not-comparison-to-zero non-ascii-name non-ascii-module-import bad-file-encoding unnecessary-dunder-call unnecessary-lambda-assignment unnecessary-direct-lambda-call syntax-error unrecognized-inline-option bad-plugin-value bad-configuration-section unrecognized-option init-is-generator return-in-init function-redefined not-in-loop return-outside-function yield-outside-function nonexistent-operator duplicate-argument-name abstract-class-instantiated bad-reversed-sequence too-many-star-expressions invalid-star-assignment-target star-needs-assignment-target nonlocal-and-global continue-in-finally nonlocal-without-binding used-prior-global-declaration misplaced-format-function method-hidden access-member-before-definition no-method-argument no-self-argument invalid-slots-object assigning-non-slot invalid-slots inherit-non-class inconsistent-mro duplicate-bases class-variable-slots-conflict invalid-class-object invalid-enum-extension declare-non-slot non-iterator-returned unexpected-special-method-signature invalid-length-returned invalid-bool-returned invalid-index-returned invalid-repr-returned invalid-str-returned invalid-bytes-returned invalid-hash-returned invalid-length-hint-returned invalid-format-returned invalid-getnewargs-returned invalid-getnewargs-ex-returned import-error relative-beyond-top-level used-before-assignment undefined-variable undefined-all-variable invalid-all-object invalid-all-format possibly-used-before-assignment no-name-in-module unpacking-non-sequence potential-index-error bad-except-order raising-bad-type misplaced-bare-raise bad-exception-cause raising-non-exception notimplemented-raised catching-non-exception bad-super-call no-member not-callable assignment-from-no-return no-value-for-parameter too-many-function-args unexpected-keyword-arg redundant-keyword-arg missing-kwoa invalid-sequence-index invalid-slice-index assignment-from-none not-context-manager invalid-unary-operand-type unsupported-binary-operation repeated-keyword not-an-iterable not-a-mapping unsupported-membership-test unsubscriptable-object unsupported-assignment-operation unsupported-delete-operation invalid-metaclass dict-iter-missing-items await-outside-async unhashable-member invalid-slice-step logging-unsupported-format logging-format-truncated logging-too-many-args logging-too-few-args bad-format-character truncated-format-string mixed-format-string format-needs-mapping missing-format-string-key too-many-format-args too-few-format-args bad-string-format-type bad-str-strip-call invalid-envvar-value singledispatch-method singledispatchmethod-function yield-inside-async-function not-async-context-manager invalid-unicode-codec bidirectional-unicode invalid-character-backspace invalid-character-carriage-return invalid-character-sub invalid-character-esc invalid-character-nul invalid-character-zero-width-space positional-only-arguments-expected invalid-field-call modified-iterating-dict modified-iterating-set fatal astroid-error parse-error config-parse-error method-check-failed raw-checker-failed bad-inline-option locally-disabled file-ignored suppressed-message useless-suppression deprecated-pragma use-symbolic-message-instead c-extension-no-member useless-option-value literal-comparison comparison-with-itself comparison-of-constants no-classmethod-decorator no-staticmethod-decorator useless-object-inheritance property-with-parameters cyclic-import consider-using-from-import duplicate-code too-many-ancestors too-many-instance-attributes too-few-public-methods too-many-public-methods too-many-return-statements too-many-branches too-many-arguments too-many-locals too-many-statements too-many-boolean-expressions too-many-positional-arguments consider-merging-isinstance too-many-nested-blocks simplifiable-if-statement redefined-argument-from-local no-else-return consider-using-ternary trailing-comma-tuple stop-iteration-return simplify-boolean-expression inconsistent-return-statements useless-return consider-swap-variables consider-using-join consider-using-in consider-using-get chained-comparison consider-using-dict-comprehension consider-using-set-comprehension simplifiable-if-expression no-else-raise unnecessary-comprehension consider-using-sys-exit no-else-break no-else-continue super-with-arguments simplifiable-condition condition-evals-to-constant consider-using-generator use-a-generator consider-using-min-builtin consider-using-max-builtin consider-using-with unnecessary-dict-index-lookup use-list-literal use-dict-literal unnecessary-list-index-lookup use-yield-from unknown-option-value unreachable dangerous-default-value pointless-statement pointless-string-statement expression-not-assigned unnecessary-pass unnecessary-lambda duplicate-key useless-else-on-loop exec-used eval-used confusing-with-statement using-constant-test missing-parentheses-for-call-in-test self-assigning-variable redeclared-assigned-name assert-on-string-literal duplicate-value named-expr-without-context pointless-exception-statement return-in-finally contextmanager-generator-missing-cleanup comparison-with-callable lost-exception nan-comparison assert-on-tuple attribute-defined-outside-init bad-staticmethod-argument protected-access implicit-flag-alias arguments-differ signature-differs abstract-method super-init-not-called non-parent-init-called invalid-overridden-method arguments-renamed unused-private-member overridden-final-method subclassed-final-class redefined-slots-in-subclass super-without-brackets useless-parent-delegation unnecessary-semicolon bad-indentation wildcard-import reimported import-self preferred-module misplaced-future shadowed-import fixme global-variable-undefined global-variable-not-assigned global-statement global-at-module-level unused-import unused-variable unused-argument unused-wildcard-import redefined-outer-name redefined-builtin undefined-loop-variable unbalanced-tuple-unpacking cell-var-from-loop possibly-unused-variable self-cls-assignment unbalanced-dict-unpacking bare-except duplicate-except try-except-raise raise-missing-from binary-op-exception raising-format-tuple wrong-exception-operation broad-exception-caught broad-exception-raised keyword-arg-before-vararg arguments-out-of-order non-str-assignment-to-dunder-name isinstance-second-argument-not-valid-type kwarg-superseded-by-positional-arg logging-not-lazy logging-format-interpolation logging-fstring-interpolation bad-format-string-key unused-format-string-key bad-format-string missing-format-argument-key unused-format-string-argument format-combined-specification missing-format-attribute invalid-format-index duplicate-string-formatting-argument f-string-without-interpolation format-string-without-interpolation anomalous-backslash-in-string anomalous-unicode-escape-in-string implicit-str-concat inconsistent-quotes redundant-u-string-prefix bad-open-mode redundant-unittest-assert bad-thread-instantiation shallow-copy-environ invalid-envvar-default subprocess-popen-preexec-fn subprocess-run-check unspecified-encoding forgotten-debug-statement method-cache-max-size-none useless-with-lock unnecessary-ellipsis non-ascii-file-name using-f-string-in-unsupported-version using-final-decorator-in-unsupported-version using-exception-groups-in-unsupported-version using-generic-type-syntax-in-unsupported-version using-assignment-expression-in-unsupported-version using-positional-only-args-in-unsupported-version missing-timeout nested-min-max bad-chained-comparison modified-iterating-list deprecated-module deprecated-method deprecated-argument deprecated-class deprecated-decorator deprecated-attribute return-arg-in-generator boolean-datetime
        return 0;;
      --argument-naming-style|--attr-naming-style|--class-naming-style|--class-attribute-naming-style|--class-const-naming-style|--const-naming-style|--function-naming-style|--inlinevar-naming-style|--method-naming-style|--module-naming-style|--variable-naming-style)
        _pylint_compgen_w_replacement -- "$cur" snake_case camelCase PascalCase UPPER_CASE any
        return 0;;
      --logging-format-style)
        _pylint_compgen_w_replacement -- "$cur" new old
        return 0;;
    esac

    return 1
  }

  case "$prev" in
    --*)
      __complete_option "$prev" "$cur" WITHOUT_OPTIONALS && return 0;;
    -*)
      case "$prev" in -*([hEv])[jfrsed])
        __complete_option "-${prev: -1}" "$cur" WITHOUT_OPTIONALS && return 0
      esac;;
  esac

  case "$cur" in
    --*=*)
      __complete_option "${cur%%=*}" "${cur#*=}" WITH_OPTIONALS && return 0;;
    -*=*);;
    --*);;
    -*)
        local i
        for ((i=2; i <= ${#cur}; ++i)); do
          local pre="${cur:0:$i}" value="${cur:$i}"
          __complete_option "-${pre: -1}" "$value" WITH_OPTIONALS && {
            _pylint_prefix_compreply "$pre"
            return 0
          }
        done;;
  esac

  if (( ! END_OF_OPTIONS )) && [[ "$cur" = -* ]]; then
    local -a opts=()
    (( ! ${#OPT_help} && ! ${#OPT_rcfile} && ! ${#OPT_output} && ! ${#OPT_help_msg} && ! ${#OPT_list_msgs} && ! ${#OPT_list_msgs_enabled} && ! ${#OPT_list_groups} && ! ${#OPT_list_conf_levels} && ! ${#OPT_list_extensions} && ! ${#OPT_full_documentation} && ! ${#OPT_generate_rcfile} && ! ${#OPT_generate_toml_config} && ! ${#OPT_long_help} )) && opts+=(-h --help)
    (( ! ${#OPT_rcfile} && ! ${#OPT_help} && ! ${#OPT_output} && ! ${#OPT_help_msg} && ! ${#OPT_list_msgs} && ! ${#OPT_list_msgs_enabled} && ! ${#OPT_list_groups} && ! ${#OPT_list_conf_levels} && ! ${#OPT_list_extensions} && ! ${#OPT_full_documentation} && ! ${#OPT_generate_rcfile} && ! ${#OPT_generate_toml_config} && ! ${#OPT_long_help} )) && opts+=(--rcfile=)
    (( ! ${#OPT_output} && ! ${#OPT_help} && ! ${#OPT_rcfile} && ! ${#OPT_help_msg} && ! ${#OPT_list_msgs} && ! ${#OPT_list_msgs_enabled} && ! ${#OPT_list_groups} && ! ${#OPT_list_conf_levels} && ! ${#OPT_list_extensions} && ! ${#OPT_full_documentation} && ! ${#OPT_generate_rcfile} && ! ${#OPT_generate_toml_config} && ! ${#OPT_long_help} )) && opts+=(--output=)
    (( ! ${#OPT_help_msg} && ! ${#OPT_help} && ! ${#OPT_rcfile} && ! ${#OPT_output} && ! ${#OPT_list_msgs} && ! ${#OPT_list_msgs_enabled} && ! ${#OPT_list_groups} && ! ${#OPT_list_conf_levels} && ! ${#OPT_list_extensions} && ! ${#OPT_full_documentation} && ! ${#OPT_generate_rcfile} && ! ${#OPT_generate_toml_config} && ! ${#OPT_long_help} )) && opts+=(--help-msg=)
    (( ! ${#OPT_list_msgs} && ! ${#OPT_help} && ! ${#OPT_rcfile} && ! ${#OPT_output} && ! ${#OPT_help_msg} && ! ${#OPT_list_msgs_enabled} && ! ${#OPT_list_groups} && ! ${#OPT_list_conf_levels} && ! ${#OPT_list_extensions} && ! ${#OPT_full_documentation} && ! ${#OPT_generate_rcfile} && ! ${#OPT_generate_toml_config} && ! ${#OPT_long_help} )) && opts+=(--list-msgs)
    (( ! ${#OPT_list_msgs_enabled} && ! ${#OPT_help} && ! ${#OPT_rcfile} && ! ${#OPT_output} && ! ${#OPT_help_msg} && ! ${#OPT_list_msgs} && ! ${#OPT_list_groups} && ! ${#OPT_list_conf_levels} && ! ${#OPT_list_extensions} && ! ${#OPT_full_documentation} && ! ${#OPT_generate_rcfile} && ! ${#OPT_generate_toml_config} && ! ${#OPT_long_help} )) && opts+=(--list-msgs-enabled)
    (( ! ${#OPT_list_groups} && ! ${#OPT_help} && ! ${#OPT_rcfile} && ! ${#OPT_output} && ! ${#OPT_help_msg} && ! ${#OPT_list_msgs} && ! ${#OPT_list_msgs_enabled} && ! ${#OPT_list_conf_levels} && ! ${#OPT_list_extensions} && ! ${#OPT_full_documentation} && ! ${#OPT_generate_rcfile} && ! ${#OPT_generate_toml_config} && ! ${#OPT_long_help} )) && opts+=(--list-groups)
    (( ! ${#OPT_list_conf_levels} && ! ${#OPT_help} && ! ${#OPT_rcfile} && ! ${#OPT_output} && ! ${#OPT_help_msg} && ! ${#OPT_list_msgs} && ! ${#OPT_list_msgs_enabled} && ! ${#OPT_list_groups} && ! ${#OPT_list_extensions} && ! ${#OPT_full_documentation} && ! ${#OPT_generate_rcfile} && ! ${#OPT_generate_toml_config} && ! ${#OPT_long_help} )) && opts+=(--list-conf-levels)
    (( ! ${#OPT_list_extensions} && ! ${#OPT_help} && ! ${#OPT_rcfile} && ! ${#OPT_output} && ! ${#OPT_help_msg} && ! ${#OPT_list_msgs} && ! ${#OPT_list_msgs_enabled} && ! ${#OPT_list_groups} && ! ${#OPT_list_conf_levels} && ! ${#OPT_full_documentation} && ! ${#OPT_generate_rcfile} && ! ${#OPT_generate_toml_config} && ! ${#OPT_long_help} )) && opts+=(--list-extensions)
    (( ! ${#OPT_full_documentation} && ! ${#OPT_help} && ! ${#OPT_rcfile} && ! ${#OPT_output} && ! ${#OPT_help_msg} && ! ${#OPT_list_msgs} && ! ${#OPT_list_msgs_enabled} && ! ${#OPT_list_groups} && ! ${#OPT_list_conf_levels} && ! ${#OPT_list_extensions} && ! ${#OPT_generate_rcfile} && ! ${#OPT_generate_toml_config} && ! ${#OPT_long_help} )) && opts+=(--full-documentation)
    (( ! ${#OPT_generate_rcfile} && ! ${#OPT_help} && ! ${#OPT_rcfile} && ! ${#OPT_output} && ! ${#OPT_help_msg} && ! ${#OPT_list_msgs} && ! ${#OPT_list_msgs_enabled} && ! ${#OPT_list_groups} && ! ${#OPT_list_conf_levels} && ! ${#OPT_list_extensions} && ! ${#OPT_full_documentation} && ! ${#OPT_generate_toml_config} && ! ${#OPT_long_help} )) && opts+=(--generate-rcfile)
    (( ! ${#OPT_generate_toml_config} && ! ${#OPT_help} && ! ${#OPT_rcfile} && ! ${#OPT_output} && ! ${#OPT_help_msg} && ! ${#OPT_list_msgs} && ! ${#OPT_list_msgs_enabled} && ! ${#OPT_list_groups} && ! ${#OPT_list_conf_levels} && ! ${#OPT_list_extensions} && ! ${#OPT_full_documentation} && ! ${#OPT_generate_rcfile} && ! ${#OPT_long_help} )) && opts+=(--generate-toml-config)
    (( ! ${#OPT_long_help} && ! ${#OPT_help} && ! ${#OPT_rcfile} && ! ${#OPT_output} && ! ${#OPT_help_msg} && ! ${#OPT_list_msgs} && ! ${#OPT_list_msgs_enabled} && ! ${#OPT_list_groups} && ! ${#OPT_list_conf_levels} && ! ${#OPT_list_extensions} && ! ${#OPT_full_documentation} && ! ${#OPT_generate_rcfile} && ! ${#OPT_generate_toml_config} )) && opts+=(--long-help)
    (( ! ${#OPT_init_hook} )) && opts+=(--init-hook=)
    (( ! ${#OPT_errors_only} )) && opts+=(--errors-only -E)
    (( ! ${#OPT_verbose} )) && opts+=(--verbose -v)
    (( ! ${#OPT_enable_all_extensions} )) && opts+=(--enable-all-extensions)
    (( ! ${#OPT_ignore} )) && opts+=(--ignore=)
    (( ! ${#OPT_ignore_patterns} )) && opts+=(--ignore-patterns=)
    (( ! ${#OPT_ignore_paths} )) && opts+=(--ignore-paths=)
    (( ! ${#OPT_persistent} )) && opts+=(--persistent=)
    (( ! ${#OPT_load_plugins} )) && opts+=(--load-plugins=)
    (( ! ${#OPT_fail_under} )) && opts+=(--fail-under=)
    (( ! ${#OPT_fail_on} )) && opts+=(--fail-on=)
    (( ! ${#OPT_jobs} )) && opts+=(--jobs= -j)
    (( ! ${#OPT_limit_inference_results} )) && opts+=(--limit-inference-results=)
    (( ! ${#OPT_extension_pkg_allow_list} )) && opts+=(--extension-pkg-allow-list=)
    (( ! ${#OPT_extension_pkg_whitelist} )) && opts+=(--extension-pkg-whitelist=)
    (( ! ${#OPT_suggestion_mode} )) && opts+=(--suggestion-mode=)
    (( ! ${#OPT_exit_zero} )) && opts+=(--exit-zero)
    (( ! ${#OPT_from_stdin} )) && opts+=(--from-stdin)
    (( ! ${#OPT_source_roots} )) && opts+=(--source-roots=)
    (( ! ${#OPT_recursive} )) && opts+=(--recursive=)
    (( ! ${#OPT_py_version} )) && opts+=(--py-version=)
    (( ! ${#OPT_ignored_modules} )) && opts+=(--ignored-modules=)
    (( ! ${#OPT_analyse_fallback_blocks} )) && opts+=(--analyse-fallback-blocks=)
    (( ! ${#OPT_clear_cache_post_run} )) && opts+=(--clear-cache-post-run=)
    (( ! ${#OPT_prefer_stubs} )) && opts+=(--prefer-stubs=)
    (( ! ${#OPT_output_format} )) && opts+=(--output-format= -f)
    (( ! ${#OPT_reports} )) && opts+=(--reports= -r)
    (( ! ${#OPT_evaluation} )) && opts+=(--evaluation=)
    (( ! ${#OPT_score} )) && opts+=(--score= -s)
    (( ! ${#OPT_msg_template} )) && opts+=(--msg-template=)
    (( ! ${#OPT_confidence} )) && opts+=(--confidence=)
    (( ! ${#OPT_enable} )) && opts+=(--enable= -e)
    (( ! ${#OPT_disable} )) && opts+=(--disable= -d)
    (( ! ${#OPT_min_similarity_lines} )) && opts+=(--min-similarity-lines=)
    (( ! ${#OPT_ignore_comments} )) && opts+=(--ignore-comments=)
    (( ! ${#OPT_ignore_docstrings} )) && opts+=(--ignore-docstrings=)
    (( ! ${#OPT_ignore_imports} )) && opts+=(--ignore-imports=)
    (( ! ${#OPT_ignore_signatures} )) && opts+=(--ignore-signatures=)
    (( ! ${#OPT_ignore_on_opaque_inference} )) && opts+=(--ignore-on-opaque-inference=)
    (( ! ${#OPT_mixin_class_rgx} )) && opts+=(--mixin-class-rgx=)
    (( ! ${#OPT_ignore_mixin_members} )) && opts+=(--ignore-mixin-members=)
    (( ! ${#OPT_ignored_checks_for_mixins} )) && opts+=(--ignored-checks-for-mixins=)
    (( ! ${#OPT_ignore_none} )) && opts+=(--ignore-none=)
    (( ! ${#OPT_ignored_classes} )) && opts+=(--ignored-classes=)
    (( ! ${#OPT_generated_members} )) && opts+=(--generated-members=)
    (( ! ${#OPT_contextmanager_decorators} )) && opts+=(--contextmanager-decorators=)
    (( ! ${#OPT_missing_member_hint_distance} )) && opts+=(--missing-member-hint-distance=)
    (( ! ${#OPT_missing_member_max_choices} )) && opts+=(--missing-member-max-choices=)
    (( ! ${#OPT_missing_member_hint} )) && opts+=(--missing-member-hint=)
    (( ! ${#OPT_signature_mutators} )) && opts+=(--signature-mutators=)
    (( ! ${#OPT_notes} )) && opts+=(--notes=)
    (( ! ${#OPT_notes_rgx} )) && opts+=(--notes-rgx=)
    (( ! ${#OPT_timeout_methods} )) && opts+=(--timeout-methods=)
    (( ! ${#OPT_spelling_dict} )) && opts+=(--spelling-dict=)
    (( ! ${#OPT_spelling_ignore_words} )) && opts+=(--spelling-ignore-words=)
    (( ! ${#OPT_spelling_private_dict_file} )) && opts+=(--spelling-private-dict-file=)
    (( ! ${#OPT_spelling_store_unknown_words} )) && opts+=(--spelling-store-unknown-words=)
    (( ! ${#OPT_max_spelling_suggestions} )) && opts+=(--max-spelling-suggestions=)
    (( ! ${#OPT_spelling_ignore_comment_directives} )) && opts+=(--spelling-ignore-comment-directives=)
    (( ! ${#OPT_max_nested_blocks} )) && opts+=(--max-nested-blocks=)
    (( ! ${#OPT_never_returning_functions} )) && opts+=(--never-returning-functions=)
    (( ! ${#OPT_suggest_join_with_non_empty_separator} )) && opts+=(--suggest-join-with-non-empty-separator=)
    (( ! ${#OPT_check_str_concat_over_line_jumps} )) && opts+=(--check-str-concat-over-line-jumps=)
    (( ! ${#OPT_check_quote_consistency} )) && opts+=(--check-quote-consistency=)
    (( ! ${#OPT_max_args} )) && opts+=(--max-args=)
    (( ! ${#OPT_max_positional_arguments} )) && opts+=(--max-positional-arguments=)
    (( ! ${#OPT_max_locals} )) && opts+=(--max-locals=)
    (( ! ${#OPT_max_returns} )) && opts+=(--max-returns=)
    (( ! ${#OPT_max_branches} )) && opts+=(--max-branches=)
    (( ! ${#OPT_max_statements} )) && opts+=(--max-statements=)
    (( ! ${#OPT_max_parents} )) && opts+=(--max-parents=)
    (( ! ${#OPT_ignored_parents} )) && opts+=(--ignored-parents=)
    (( ! ${#OPT_max_attributes} )) && opts+=(--max-attributes=)
    (( ! ${#OPT_min_public_methods} )) && opts+=(--min-public-methods=)
    (( ! ${#OPT_max_public_methods} )) && opts+=(--max-public-methods=)
    (( ! ${#OPT_max_bool_expr} )) && opts+=(--max-bool-expr=)
    (( ! ${#OPT_exclude_too_few_public_methods} )) && opts+=(--exclude-too-few-public-methods=)
    (( ! ${#OPT_overgeneral_exceptions} )) && opts+=(--overgeneral-exceptions=)
    (( ! ${#OPT_defining_attr_methods} )) && opts+=(--defining-attr-methods=)
    (( ! ${#OPT_valid_classmethod_first_arg} )) && opts+=(--valid-classmethod-first-arg=)
    (( ! ${#OPT_valid_metaclass_classmethod_first_arg} )) && opts+=(--valid-metaclass-classmethod-first-arg=)
    (( ! ${#OPT_exclude_protected} )) && opts+=(--exclude-protected=)
    (( ! ${#OPT_check_protected_access_in_special_methods} )) && opts+=(--check-protected-access-in-special-methods=)
    (( ! ${#OPT_max_line_length} )) && opts+=(--max-line-length=)
    (( ! ${#OPT_ignore_long_lines} )) && opts+=(--ignore-long-lines=)
    (( ! ${#OPT_single_line_if_stmt} )) && opts+=(--single-line-if-stmt=)
    (( ! ${#OPT_single_line_class_stmt} )) && opts+=(--single-line-class-stmt=)
    (( ! ${#OPT_max_module_lines} )) && opts+=(--max-module-lines=)
    (( ! ${#OPT_indent_string} )) && opts+=(--indent-string=)
    (( ! ${#OPT_indent_after_paren} )) && opts+=(--indent-after-paren=)
    (( ! ${#OPT_expected_line_ending_format} )) && opts+=(--expected-line-ending-format=)
    (( ! ${#OPT_good_names} )) && opts+=(--good-names=)
    (( ! ${#OPT_good_names_rgxs} )) && opts+=(--good-names-rgxs=)
    (( ! ${#OPT_bad_names} )) && opts+=(--bad-names=)
    (( ! ${#OPT_bad_names_rgxs} )) && opts+=(--bad-names-rgxs=)
    (( ! ${#OPT_name_group} )) && opts+=(--name-group=)
    (( ! ${#OPT_include_naming_hint} )) && opts+=(--include-naming-hint=)
    (( ! ${#OPT_property_classes} )) && opts+=(--property-classes=)
    (( ! ${#OPT_argument_naming_style} )) && opts+=(--argument-naming-style=)
    (( ! ${#OPT_argument_rgx} )) && opts+=(--argument-rgx=)
    (( ! ${#OPT_attr_naming_style} )) && opts+=(--attr-naming-style=)
    (( ! ${#OPT_attr_rgx} )) && opts+=(--attr-rgx=)
    (( ! ${#OPT_class_naming_style} )) && opts+=(--class-naming-style=)
    (( ! ${#OPT_class_rgx} )) && opts+=(--class-rgx=)
    (( ! ${#OPT_class_attribute_naming_style} )) && opts+=(--class-attribute-naming-style=)
    (( ! ${#OPT_class_attribute_rgx} )) && opts+=(--class-attribute-rgx=)
    (( ! ${#OPT_class_const_naming_style} )) && opts+=(--class-const-naming-style=)
    (( ! ${#OPT_class_const_rgx} )) && opts+=(--class-const-rgx=)
    (( ! ${#OPT_const_naming_style} )) && opts+=(--const-naming-style=)
    (( ! ${#OPT_const_rgx} )) && opts+=(--const-rgx=)
    (( ! ${#OPT_function_naming_style} )) && opts+=(--function-naming-style=)
    (( ! ${#OPT_function_rgx} )) && opts+=(--function-rgx=)
    (( ! ${#OPT_inlinevar_naming_style} )) && opts+=(--inlinevar-naming-style=)
    (( ! ${#OPT_inlinevar_rgx} )) && opts+=(--inlinevar-rgx=)
    (( ! ${#OPT_method_naming_style} )) && opts+=(--method-naming-style=)
    (( ! ${#OPT_method_rgx} )) && opts+=(--method-rgx=)
    (( ! ${#OPT_module_naming_style} )) && opts+=(--module-naming-style=)
    (( ! ${#OPT_module_rgx} )) && opts+=(--module-rgx=)
    (( ! ${#OPT_typealias_rgx} )) && opts+=(--typealias-rgx=)
    (( ! ${#OPT_typevar_rgx} )) && opts+=(--typevar-rgx=)
    (( ! ${#OPT_variable_naming_style} )) && opts+=(--variable-naming-style=)
    (( ! ${#OPT_variable_rgx} )) && opts+=(--variable-rgx=)
    (( ! ${#OPT_no_docstring_rgx} )) && opts+=(--no-docstring-rgx=)
    (( ! ${#OPT_docstring_min_length} )) && opts+=(--docstring-min-length=)
    (( ! ${#OPT_init_import} )) && opts+=(--init-import=)
    (( ! ${#OPT_dummy_variables_rgx} )) && opts+=(--dummy-variables-rgx=)
    (( ! ${#OPT_additional_builtins} )) && opts+=(--additional-builtins=)
    (( ! ${#OPT_callbacks} )) && opts+=(--callbacks=)
    (( ! ${#OPT_redefining_builtins_modules} )) && opts+=(--redefining-builtins-modules=)
    (( ! ${#OPT_ignored_argument_names} )) && opts+=(--ignored-argument-names=)
    (( ! ${#OPT_allow_global_unused_variables} )) && opts+=(--allow-global-unused-variables=)
    (( ! ${#OPT_allowed_redefined_builtins} )) && opts+=(--allowed-redefined-builtins=)
    (( ! ${#OPT_deprecated_modules} )) && opts+=(--deprecated-modules=)
    (( ! ${#OPT_preferred_modules} )) && opts+=(--preferred-modules=)
    (( ! ${#OPT_import_graph} )) && opts+=(--import-graph=)
    (( ! ${#OPT_ext_import_graph} )) && opts+=(--ext-import-graph=)
    (( ! ${#OPT_int_import_graph} )) && opts+=(--int-import-graph=)
    (( ! ${#OPT_known_standard_library} )) && opts+=(--known-standard-library=)
    (( ! ${#OPT_known_third_party} )) && opts+=(--known-third-party=)
    (( ! ${#OPT_allow_any_import_level} )) && opts+=(--allow-any-import-level=)
    (( ! ${#OPT_allow_wildcard_with_all} )) && opts+=(--allow-wildcard-with-all=)
    (( ! ${#OPT_allow_reexport_from_package} )) && opts+=(--allow-reexport-from-package=)
    (( ! ${#OPT_logging_modules} )) && opts+=(--logging-modules=)
    (( ! ${#OPT_logging_format_style} )) && opts+=(--logging-format-style=)
    _pylint_compgen_w_replacement -a -- "$cur" "${opts[@]}"
    [[ ${COMPREPLY-} == *= ]] && compopt -o nospace
    return 1
  fi

  test "$POSITIONAL_NUM" -ge 1 && {
    _filedir
    return 0;
  }

  return 1
}

complete -F _pylint pylint

# vim: ft=sh ts=2 sts=2 sw=2 et