Repository Analysis

fastapi/typer

Typer, build great CLIs. Easy to code. Based on Python type hints.

15.7 Moderate AI signal View on GitHub
15.7
Adjusted Score
15.7
Raw Score
100%
Time Factor
2026-05-30
Last Push
19,499
Stars
Python
Language
51,780
Lines of Code
751
Files
488
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 47MEDIUM 105LOW 336

Pattern Findings

488 matches across 10 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers238 hits · 236 pts
SeverityFileLineSnippet
LOWtyper/_types.py99 def get_invalid_choice_message(self, value: Any, ctx: _click.Context | None) -> str:
LOWtyper/completion.py17def get_completion_inspect_parameters() -> tuple[ParamMeta, ParamMeta]:
LOWtyper/completion.py64def _install_completion_placeholder_function(
LOWtyper/completion.py83def _install_completion_no_auto_placeholder_function(
LOWtyper/core.py44def _typer_param_setup_autocompletion_compat(
LOWtyper/core.py133def _extract_default_help_str(
LOWtyper/core.py322 def _extract_default_help_str(
LOWtyper/core.py740 def _extract_default_help_str(
LOWtyper/core.py878def _typer_main_shell_completion(
LOWtyper/rich_utils.py719def escape_before_html_export(input_text: str) -> str:
LOWtyper/utils.py10def _param_type_to_user_string(param_type: type[ParameterInfo]) -> str:
LOWtyper/utils.py94def _split_annotation_from_typer_annotations(
LOWtyper/main.py112def get_install_completion_arguments() -> tuple[_click.Parameter, _click.Parameter]:
LOWtyper/main.py1248def solve_typer_info_defaults(typer_info: TyperInfo) -> TyperInfo:
LOWtyper/main.py1364def get_params_convertors_ctx_param_name_from_function(
LOWtyper/_click/_winconsole.py280def _get_windows_console_stream(
LOWtyper/_click/core.py42def _complete_visible_commands(
LOWtyper/_click/core.py80def iter_params_for_processing(
LOWtyper/_click/core.py364 def _close_with_exception_info(
LOWtyper/_click/parser.py304 def _process_args_for_options(self, state: _ParsingState) -> None:
LOWtyper/_click/_compat.py188def _is_compatible_text_stream(
LOWtyper/_click/_compat.py199def _force_correct_text_stream(
LOWtyper/_click/_compat.py241def _force_correct_text_reader(
LOWtyper/_click/_compat.py255def _force_correct_text_writer(
LOWtyper/_click/_compat.py444def _is_jupyter_kernel_output(stream: IO[Any]) -> bool:
LOWtyper/_click/_compat.py512 def _get_windows_console_stream(
LOWtests/test_termui.py113def test_clirunner_invoke_system_exit_branches(
LOWtests/test_termui.py135def test_termui_impl_windows_raw_terminal():
LOWtests/test_termui.py143def test_termui_impl_windows_getchar(monkeypatch):
LOWtests/test_termui.py176def test_termui_impl_posix_raw_terminal(monkeypatch, use_stdin_tty: bool):
LOWtests/test_termui.py250def test_termui_impl_posix_getchar(monkeypatch):
LOWtests/test_termui.py267def test_termui_impl_posix_getchar_eof(monkeypatch):
LOWtests/test_termui.py357def test_echo_windows_color_none(
LOWtests/test_progress_bar.py115def test_progressbar_tty_show_eta(monkeypatch):
LOWtests/test_progress_bar.py146def test_progressbar_autowidth(monkeypatch):
LOWtests/test_progress_bar.py236def test_progress_bar_time_zero_steps(monkeypatch):
LOWtests/test_progress_bar.py340def test_progress_bar_unknown_length(
LOWtests/test_launch.py44def test_launch_url_no_xdg_open():
LOWtests/test_launch.py87def test_launch_files_windows(monkeypatch):
LOWtests/test_launch.py120def test_open_url_linux_locate(monkeypatch):
LOWtests/test_prepare_release.py38def test_update_version_file_requires_newer_version() -> None:
LOWtests/test_prepare_release.py45def test_update_release_notes() -> None:
LOWtests/test_prepare_release.py86def test_update_release_notes_rejects_existing_version() -> None:
LOWtests/test_prepare_release.py100def test_cli_updates_configured_files(tmp_path: Path) -> None:
LOWtests/test_prepare_release.py136def test_cli_accepts_env_vars(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None:
LOWtests/test_prepare_release.py156def test_cli_prints_current_version(tmp_path: Path) -> None:
LOWtests/test_type_conversion.py95def test_list_parameters_convert_to_lists(type_annotation):
LOWtests/test_type_conversion.py121def test_tuple_parameter_elements_are_converted_recursively(type_annotation):
LOWtests/test_type_conversion.py128 def tuple_recursive_conversion(container: type_annotation):
LOWtests/test_type_conversion.py164def test_custom_parse_value_error():
LOWtests/test_type_conversion.py202def test_int_range_open_bound_clamp():
LOWtests/test_type_conversion.py219def test_bool_convert_invalid():
LOWtests/test_type_conversion.py242def test_string_param_type_converts_bytes(
LOWtests/test_type_conversion.py290def test_path_convert_failures(
LOWtests/test_param_meta_empty.py7def test_default_with_class_with_custom_eq():
LOWtests/test_types_file.py36def probe_lazy_file_behaviors(
LOWtests/test_types_file.py159def test_get_text_stream_errors(
LOWtests/test_types_file.py196def test_pacify_flush_wrapper() -> None:
LOWtests/test_types_file.py248def test_binary_stream_raises(monkeypatch) -> None:
LOWtests/test_types_file.py287def test_app_dir_windows_fallback(
178 more matches not shown…
Cross-File Repetition46 hits · 230 pts
SeverityFileLineSnippet
HIGHtyper/params.py0**note**: you probably shouldn't use this parameter, it is inherited from click and supported for compatibility. it is h
HIGHtyper/params.py0**note**: you probably shouldn't use this parameter, it is inherited from click and supported for compatibility. it is h
HIGHtyper/params.py0**note**: you probably shouldn't use this parameter, it is inherited from click and supported for compatibility. it is h
HIGHtyper/params.py0**note**: you probably shouldn't use this parameter, it is inherited from click and supported for compatibility. it is h
HIGHtyper/main.py0**note**: you probably shouldn't use this parameter, it is inherited from click and supported for compatibility. --- how
HIGHtyper/main.py0**note**: you probably shouldn't use this parameter, it is inherited from click and supported for compatibility. --- how
HIGHtyper/main.py0**note**: you probably shouldn't use this parameter, it is inherited from click and supported for compatibility. --- how
HIGHtyper/main.py0**note**: you probably shouldn't use this parameter, it is inherited from click and supported for compatibility. --- all
HIGHtyper/main.py0**note**: you probably shouldn't use this parameter, it is inherited from click and supported for compatibility. --- all
HIGHtyper/main.py0**note**: you probably shouldn't use this parameter, it is inherited from click and supported for compatibility. --- all
HIGHtyper/main.py0**note**: you probably shouldn't use this parameter, it is inherited from click and supported for compatibility. --- a f
HIGHtyper/main.py0**note**: you probably shouldn't use this parameter, it is inherited from click and supported for compatibility. --- a f
HIGHtyper/main.py0**note**: you probably shouldn't use this parameter, it is inherited from click and supported for compatibility. --- a f
HIGHtyper/main.py0**note**: you probably shouldn't use this parameter, it is inherited from click and supported for compatibility. --- by
HIGHtyper/main.py0**note**: you probably shouldn't use this parameter, it is inherited from click and supported for compatibility. --- by
HIGHtyper/main.py0**note**: you probably shouldn't use this parameter, it is inherited from click and supported for compatibility. --- by
HIGHtyper/main.py0**note**: you probably shouldn't use this parameter, it is inherited from click and supported for compatibility. --- by
HIGHtyper/main.py0if this is set to `true`, running a command without any arguments will automatically show the help page.
HIGHtyper/main.py0if this is set to `true`, running a command without any arguments will automatically show the help page.
HIGHtyper/main.py0if this is set to `true`, running a command without any arguments will automatically show the help page.
HIGHtyper/main.py0pass configurations for the [context](https://typer.tiangolo.com/tutorial/commands/context/). available configurations c
HIGHtyper/main.py0pass configurations for the [context](https://typer.tiangolo.com/tutorial/commands/context/). available configurations c
HIGHtyper/main.py0pass configurations for the [context](https://typer.tiangolo.com/tutorial/commands/context/). available configurations c
HIGHtyper/main.py0text that will be printed right after the help text.
HIGHtyper/main.py0text that will be printed right after the help text.
HIGHtyper/main.py0text that will be printed right after the help text.
HIGHtyper/main.py0a shortened version of the help text that can be used e.g. in the help table listing subcommands. when not defined, the
HIGHtyper/main.py0a shortened version of the help text that can be used e.g. in the help table listing subcommands. when not defined, the
HIGHtyper/main.py0a shortened version of the help text that can be used e.g. in the help table listing subcommands. when not defined, the
HIGHtyper/main.py0in the example usage string of the help text for a command, the default placeholder for various arguments is `[options]`
HIGHtyper/main.py0in the example usage string of the help text for a command, the default placeholder for various arguments is `[options]`
HIGHtyper/main.py0in the example usage string of the help text for a command, the default placeholder for various arguments is `[options]`
HIGHtyper/main.py0hide this command from help outputs. `false` by default.
HIGHtyper/main.py0hide this command from help outputs. `false` by default.
HIGHtyper/main.py0hide this command from help outputs. `false` by default.
HIGHtyper/main.py0set the panel name of the command when the help is printed with rich.
HIGHtyper/main.py0set the panel name of the command when the help is printed with rich.
HIGHtyper/main.py0set the panel name of the command when the help is printed with rich.
HIGHtyper/.agents/skills/typer/SKILL.md0[bold green]create[/bold green] a new [italic]shiny[/italic] user. :sparkles: this requires a [underline]username[/under
HIGHdocs_src/commands/help/tutorial004_an_py310.py0[bold green]create[/bold green] a new [italic]shiny[/italic] user. :sparkles: this requires a [underline]username[/under
HIGHdocs_src/commands/help/tutorial004_py310.py0[bold green]create[/bold green] a new [italic]shiny[/italic] user. :sparkles: this requires a [underline]username[/under
HIGHdocs_src/options/help/tutorial002_an_py310.py0say hi to name, optionally with a --lastname. if --formal is used, say hi very formally.
HIGHdocs_src/options/help/tutorial001_py310.py0say hi to name, optionally with a --lastname. if --formal is used, say hi very formally.
HIGHdocs_src/options/help/tutorial001_an_py310.py0say hi to name, optionally with a --lastname. if --formal is used, say hi very formally.
HIGHdocs_src/options/help/tutorial002_py310.py0say hi to name, optionally with a --lastname. if --formal is used, say hi very formally.
HIGHdocs_src/first_steps/tutorial006_py310.py0say hi to name, optionally with a --lastname. if --formal is used, say hi very formally.
Decorative Section Separators98 hits · 226 pts
SeverityFileLineSnippet
MEDIUMdocs/tutorial/first-steps.md116<font color="#F92672">╭─ Error ───────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/first-steps.md118<font color="#F92672">╰───────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/first-steps.md124<font color="#F92672">╭─ Error ───────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/first-steps.md126<font color="#F92672">╰───────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/first-steps.md135<font color="#F92672">╭─ Error ───────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/first-steps.md137<font color="#F92672">╰───────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/first-steps.md243<font color="#A5A5A1">╭─ Arguments ─────────────────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/first-steps.md246<font color="#A5A5A1">╰─────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/first-steps.md247<font color="#A5A5A1">╭─ Options ───────────────────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/first-steps.md251<font color="#A5A5A1">╰─────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/first-steps.md303<font color="#A5A5A1">╭─ Arguments ───────────────────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/first-steps.md305<font color="#A5A5A1">╰───────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/first-steps.md306<font color="#A5A5A1">╭─ Options ─────────────────────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/first-steps.md311<font color="#A5A5A1">╰───────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/first-steps.md377<font color="#A5A5A1">╭─ Arguments ───────────────────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/first-steps.md379<font color="#A5A5A1">╰───────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/first-steps.md380<font color="#A5A5A1">╭─ Options ─────────────────────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/first-steps.md385<font color="#A5A5A1">╰───────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/first-steps.md27<font color="#A5A5A1">╭─ Options ─────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/first-steps.md30<font color="#A5A5A1">╰───────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/first-steps.md75<font color="#F92672">╭─ Error ───────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/first-steps.md77<font color="#F92672">╰───────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/exceptions.md28<font color="#F92672">╭──────────────── </font><font color="#F92672"><b>Traceback (most recent call last)</b></font><fon
MEDIUMdocs/tutorial/exceptions.md38<font color="#F92672">╰───────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/exceptions.md89<font color="#F92672">╭──────────────── </font><font color="#F92672"><b>Traceback (most recent call last)</b></font><fon
MEDIUMdocs/tutorial/exceptions.md102<font color="#F92672">│</font> <font color="#F4BF75">╰────────────────╯</font>
MEDIUMdocs/tutorial/exceptions.md103<font color="#F92672">╰───────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/exceptions.md126<font color="#F92672">╭──────────────── </font><font color="#F92672"><b>Traceback (most recent call last)</b></font><fon
MEDIUMdocs/tutorial/exceptions.md135<font color="#F92672">│</font> <font color="#F4BF75">╭─────────────────────────── locals ────────────────────────────╮</
MEDIUMdocs/tutorial/exceptions.md150<font color="#F92672">│</font> <font color="#F4BF75">╰───────────────────────────────────────────────────────────────╯</
MEDIUMdocs/tutorial/exceptions.md188<font color="#F92672">│</font> <font color="#F4BF75">╰────────────────╯</font>
MEDIUMdocs/tutorial/exceptions.md189<font color="#F92672">╰───────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/progressbar.md36Processing... <font color="#F92672">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸</font><font color="#3A3A3A">━━━━━━━━━━</font> <font c
MEDIUMdocs/tutorial/options/help.md75<font color="#A5A5A1">╭─ Arguments ───────────────────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/options/help.md77<font color="#A5A5A1">╰───────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/options/help.md78<font color="#A5A5A1">╭─ Options ─────────────────────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/options/help.md81<font color="#A5A5A1">╰───────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/options/help.md82<font color="#A5A5A1">╭─ Customization and Utils ─────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/options/help.md87<font color="#A5A5A1">╰───────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/commands/help.md140<font color="#A5A5A1">╭─ Options ─────────────────────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/commands/help.md147<font color="#A5A5A1">╰───────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/commands/help.md148<font color="#A5A5A1">╭─ Commands ────────────────────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/commands/help.md151<font color="#A5A5A1">╰───────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/commands/help.md169<font color="#A5A5A1">╭─ Arguments ───────────────────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/commands/help.md171<font color="#A5A5A1">╰───────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/commands/help.md172<font color="#A5A5A1">╭─ Options ─────────────────────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/commands/help.md174<font color="#A5A5A1">╰───────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/commands/help.md240<font color="#A5A5A1">╭─ Arguments ───────────────────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/commands/help.md244<font color="#A5A5A1">╰───────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/commands/help.md245<font color="#A5A5A1">╭─ Options ─────────────────────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/commands/help.md247<font color="#A5A5A1">╰───────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/commands/help.md263<font color="#A5A5A1">╭─ Arguments ───────────────────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/commands/help.md267<font color="#A5A5A1">╰───────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/commands/help.md268<font color="#A5A5A1">╭─ Options ─────────────────────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/commands/help.md272<font color="#A5A5A1">╰───────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/commands/help.md301 <font color="#F4BF75">───────────────────────────────────────────────────────────────────</font>
MEDIUMdocs/tutorial/commands/help.md304<font color="#A5A5A1">╭─ Arguments ───────────────────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/commands/help.md308<font color="#A5A5A1">╰───────────────────────────────────────────────────────────────────╯</font>
MEDIUMdocs/tutorial/commands/help.md309<font color="#A5A5A1">╭─ Options ─────────────────────────────────────────────────────────╮</font>
MEDIUMdocs/tutorial/commands/help.md311<font color="#A5A5A1">╰───────────────────────────────────────────────────────────────────╯</font>
38 more matches not shown…
Unused Imports51 hits · 48 pts
SeverityFileLineSnippet
LOWtyper/params.py8
LOWtyper/_typing.py8
LOWtyper/_typing.py8
LOWtyper/models.py20
LOWtyper/models.py20
LOWtyper/models.py21
LOWtyper/__init__.py5
LOWtyper/__init__.py7
LOWtyper/__init__.py8
LOWtyper/__init__.py9
LOWtyper/__init__.py10
LOWtyper/__init__.py11
LOWtyper/__init__.py12
LOWtyper/__init__.py13
LOWtyper/__init__.py14
LOWtyper/__init__.py15
LOWtyper/__init__.py16
LOWtyper/__init__.py17
LOWtyper/__init__.py18
LOWtyper/__init__.py19
LOWtyper/__init__.py20
LOWtyper/__init__.py21
LOWtyper/__init__.py22
LOWtyper/__init__.py23
LOWtyper/__init__.py24
LOWtyper/__init__.py25
LOWtyper/__init__.py26
LOWtyper/__init__.py27
LOWtyper/__init__.py28
LOWtyper/__init__.py29
LOWtyper/__init__.py30
LOWtyper/__init__.py31
LOWtyper/__init__.py32
LOWtyper/testing.py17
LOWtyper/_click/_winconsole.py79
LOWtyper/_click/_winconsole.py81
LOWtyper/_click/globals.py5
LOWtyper/_click/__init__.py5
LOWtyper/_click/__init__.py6
LOWtyper/_click/__init__.py7
LOWtyper/_click/__init__.py8
LOWtyper/_click/__init__.py9
LOWtyper/_click/__init__.py10
LOWtyper/_click/__init__.py11
LOWtyper/_click/types.py24
LOWtyper/_click/types.py24
LOWtyper/_click/parser.py37
LOWtyper/_click/parser.py38
LOWtyper/_click/parser.py40
LOWtyper/_click/exceptions.py9
LOWtests/test_future_annotations.py1
Deep Nesting26 hits · 26 pts
SeverityFileLineSnippet
LOWtyper/core.py84
LOWtyper/core.py151
LOWtyper/core.py857
LOWtyper/core.py543
LOWtyper/core.py1165
LOWtyper/_completion_shared.py203
LOWtyper/cli.py140
LOWtyper/cli.py186
LOWtyper/utils.py107
LOWtyper/main.py1521
LOWtyper/main.py1623
LOWtyper/main.py1838
LOWtyper/testing.py159
LOWtyper/_click/types.py621
LOWtyper/_click/types.py147
LOWtyper/_click/parser.py46
LOWtyper/_click/parser.py153
LOWtyper/_click/parser.py304
LOWtyper/_click/termui.py74
LOWtyper/_click/termui.py151
LOWtyper/_click/utils.py192
LOWtyper/_click/shell_completion.py229
LOWtyper/_click/_termui_impl.py345
LOWtests/test_rich_utils.py181
LOWscripts/docs.py124
LOWscripts/docs.py251
Excessive Try-Catch Wrapping18 hits · 20 pts
SeverityFileLineSnippet
LOWtyper/main.py1138 except Exception as e:
LOWtyper/testing.py251 except Exception: # pragma: no cover
LOWtyper/testing.py261 except Exception: # pragma: no cover
LOWtyper/testing.py320 except Exception as e:
LOWtyper/_click/_winconsole.py212 except Exception: # pragma: no cover
LOWtyper/_click/core.py1072 except Exception:
LOWtyper/_click/utils.py47 except Exception: # pragma: no cover
LOWtyper/_click/_compat.py68 except Exception: # pragma: no cover
LOWtyper/_click/_compat.py115 except Exception: # pragma: no cover
LOWtyper/_click/_compat.py124 except Exception: # pragma: no cover
LOWtyper/_click/_compat.py128 except Exception:
LOWtyper/_click/_compat.py478 except Exception: # pragma: no cover
LOWtyper/_click/_compat.py502 except Exception: # pragma: no cover
LOWtyper/_click/_compat.py525 except Exception: # pragma: no cover
LOWtyper/_click/_compat.py540 except Exception: # pragma: no cover
LOWtyper/_click/_compat.py547 except Exception: # pragma: no cover
MEDIUMtyper/_click/_compat.py65def __del__(self) -> None:
LOWtests/test_param_meta_empty.py21 except Exception:
Self-Referential Comments6 hits · 18 pts
SeverityFileLineSnippet
MEDIUMpyproject.toml172# This file is more readable without yield from
MEDIUMtyper/completion.py63# Create a fake command function to extract the completion parameters
MEDIUMtyper/main.py1182 # Create a Group
MEDIUMtyper/main.py1189 # Create a single Command
MEDIUMtyper/_click/_winconsole.py1# This module is based on the excellent work by Adam Bartoš who
MEDIUMtyper/_click/core.py954 # Define the conversion function based on nargs and type.
Cross-Language Confusion1 hit · 5 pts
SeverityFileLineSnippet
HIGHtyper/_click/_termui_impl.py365 return subprocess.Popen(args, stderr=null).wait()
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippet
LOWtyper/models.py335 # Check if user has provided multiple custom parsers
LOWscripts/docs.py292 # Check if the _an counterpart (or non-_an counterpart) is referenced.
Over-Commented Block2 hits · 2 pts
SeverityFileLineSnippet
LOWtyper/_click/parser.py321 # [arg0, arg1, ..., arg(i-1), arg(i), arg(i+1), ..., arg(N-1)]
LOWtyper/_click/_termui_impl.py441 #