Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Try node #7767

Merged
merged 6 commits into from
Jul 10, 2023
Merged

Use Try node #7767

merged 6 commits into from
Jul 10, 2023

Conversation

cdce8p
Copy link
Member

@cdce8p cdce8p commented Nov 14, 2022

Description

Update pylint to use new Try node which replaces the old TryExcept and TryFinally nodes.

Refs: pylint-dev/astroid#1867

@cdce8p cdce8p marked this pull request as draft November 14, 2022 11:44
@coveralls
Copy link

Pull Request Test Coverage Report for Build 3461295648

  • 28 of 28 (100.0%) changed or added relevant lines in 10 files are covered.
  • 3 unchanged lines in 2 files lost coverage.
  • Overall coverage decreased (-0.02%) to 95.383%

Files with Coverage Reduction New Missed Lines %
pylint/checkers/classes/class_checker.py 1 94.69%
pylint/extensions/mccabe.py 2 97.3%
Totals Coverage Status
Change from base Build 3460107264: -0.02%
Covered Lines: 17334
Relevant Lines: 18173

💛 - Coveralls

@github-actions

This comment has been minimized.

@cdce8p cdce8p added the Needs astroid update Needs an astroid update (probably a release too) before being mergable label Nov 14, 2022
@jacobtylerwalls jacobtylerwalls added this to the 3.0.0a7 milestone Jul 8, 2023
@jacobtylerwalls jacobtylerwalls removed the Needs astroid update Needs an astroid update (probably a release too) before being mergable label Jul 8, 2023
@jacobtylerwalls jacobtylerwalls marked this pull request as ready for review July 8, 2023 20:50
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@cdce8p
Copy link
Member Author

cdce8p commented Jul 8, 2023

Thanks for all your work guys! I don't find much time lately to work on pylint, unfortunately but it's great to see it's still going strong. Especially thanks to you @jacobtylerwalls! The astroid improvements look awesome and there's even support for Python 3.12 already. Happy to see that my Try node rewrite finally gets completed and merged as well.

Copy link
Member

@Pierre-Sassoulas Pierre-Sassoulas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great ! Wondering about the need for a changelog entry (not to warn about our internals change) but about the mc cabe and disable change in behavior

@@ -39,6 +39,8 @@ async def complex_function(this, function, has, more, arguments, than,
return than
try:
return one
except TypeError:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What was happening here ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Functional tests expected too-many-branches. The try of a try/finally was double-counted before, so here adding an except back corrects the count and keeps the total identical.

@@ -311,7 +311,7 @@ def test_enable_message_block(initialized_linter: PyLinter) -> None:
# meth6
assert not linter.is_message_enabled("E1101", 57)
assert linter.is_message_enabled("E1101", 61)
assert not linter.is_message_enabled("E1101", 64)
assert linter.is_message_enabled("E1101", 64)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Breaking change to warn about in changelog ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Pierre-Sassoulas Pierre-Sassoulas added the Maintenance Discussion or action around maintaining pylint or the dev workflow label Jul 9, 2023
@github-actions
Copy link
Contributor

🤖 Effect of this PR on checked open source code: 🤖

Effect on astroid:
The following messages are now emitted:

  1. too-complex:
    'ast_from_module_name' is too complex. The McCabe rating is 21
    https://github.com/pylint-dev/astroid/blob/4d77ff6b3d4f1ccd956ef231c8dcea4f650e5415/astroid/manager.py#L184
  2. too-many-try-statements:
    try clause contains 8 statements, expected at most 1
    https://github.com/pylint-dev/astroid/blob/4d77ff6b3d4f1ccd956ef231c8dcea4f650e5415/astroid/manager.py#L204
  3. too-many-try-statements:
    try clause contains 5 statements, expected at most 1
    https://github.com/pylint-dev/astroid/blob/4d77ff6b3d4f1ccd956ef231c8dcea4f650e5415/astroid/nodes/node_classes.py#L1060

The following messages are no longer emitted:

  1. too-complex:
    '_inference_tip_cached' is too complex. The McCabe rating is 11
    https://github.com/pylint-dev/astroid/blob/4d77ff6b3d4f1ccd956ef231c8dcea4f650e5415/astroid/inference_tip.py#L36
  2. too-complex:
    'ast_from_module_name' is too complex. The McCabe rating is 22
    https://github.com/pylint-dev/astroid/blob/4d77ff6b3d4f1ccd956ef231c8dcea4f650e5415/astroid/manager.py#L184
  3. too-many-try-statements:
    try clause contains 8 statements, expected at most 1
    https://github.com/pylint-dev/astroid/blob/4d77ff6b3d4f1ccd956ef231c8dcea4f650e5415/astroid/manager.py#L204
  4. too-many-try-statements:
    try clause contains 5 statements, expected at most 1
    https://github.com/pylint-dev/astroid/blob/4d77ff6b3d4f1ccd956ef231c8dcea4f650e5415/astroid/nodes/node_classes.py#L1060

Effect on home-assistant:
The following messages are now emitted:

  1. too-complex:
    '_async_setup_component' is too complex. The McCabe rating is 24
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/setup.py#L168
  2. too-many-try-statements:
    try clause contains 5 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/setup.py#L273
  3. too-many-branches:
    Too many branches (20/12)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/setup.py#L168
  4. too-many-statements:
    Too many statements (72/50)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/setup.py#L168
  5. too-many-try-statements:
    try clause contains 6 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/aurora_abb_powerone/sensor.py#L95
  6. too-many-try-statements:
    try clause contains 6 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/aurora_abb_powerone/config_flow.py#L42
  7. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/dlna_dmr/media_player.py#L431
  8. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/emulated_hue/hue_api.py#L892
  9. too-complex:
    'async_added_to_hass' is too complex. The McCabe rating is 11
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/mqtt/mixins.py#L784
  10. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/mqtt/client.py#L894
  11. too-many-statements:
    Too many statements (80/50)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/mqtt/__init__.py#L183
  12. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/airvisual_pro/config_flow.py#L52
  13. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/esphome/voice_assistant.py#L328
  14. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/esphome/config_flow.py#L336
  15. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/zha/api.py#L76
  16. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/tradfri/config_flow.py#L143
  17. too-complex:
    'async_log_errors' is too complex. The McCabe rating is 11
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/denonavr/media_player.py#L139
  18. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/upnp/__init__.py#L73
  19. too-many-statements:
    Too many statements (57/50)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/upnp/__init__.py#L40
  20. too-many-try-statements:
    try clause contains 16 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/voip/voip.py#L232
  21. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/voip/voip.py#L250
  22. too-many-try-statements:
    try clause contains 8 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/voip/voip.py#L389
  23. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/baf/config_flow.py#L29
  24. too-complex:
    'async_handle' is too complex. The McCabe rating is 25
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/websocket_api/http.py#L266
  25. too-many-try-statements:
    try clause contains 26 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/websocket_api/http.py#L131
  26. too-many-try-statements:
    try clause contains 41 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/websocket_api/http.py#L301
  27. too-many-branches:
    Too many branches (26/12)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/websocket_api/http.py#L266
  28. too-many-statements:
    Too many statements (112/50)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/websocket_api/http.py#L266
  29. too-complex:
    '_async_learn_rf_command' is too complex. The McCabe rating is 12
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/broadlink/remote.py#L353
  30. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/led_ble/__init__.py#L80
  31. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/mysensors/gateway.py#L108
  32. too-complex:
    'websocket_run' is too complex. The McCabe rating is 14
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/assist_pipeline/websocket_api.py#L83
  33. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/assist_pipeline/websocket_api.py#L191
  34. too-many-try-statements:
    try clause contains 3 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/homekit_controller/connection.py#L806
  35. too-many-try-statements:
    try clause contains 8 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/buienradar/util.py#L93
  36. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/recorder/core.py#L963
  37. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/recorder/util.py#L129
  38. too-many-try-statements:
    try clause contains 3 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/heos/config_flow.py#L66
  39. too-complex:
    'async_setup_entry' is too complex. The McCabe rating is 13
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/matter/__init__.py#L38
  40. too-many-try-statements:
    try clause contains 3 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/reolink/host.py#L500
  41. too-many-branches:
    Too many branches (13/12)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/reolink/config_flow.py#L110
  42. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/network/util.py#L143
  43. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/picotts/tts.py#L57
  44. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/api/__init__.py#L124
  45. too-many-try-statements:
    try clause contains 14 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/onvif/config_flow.py#L289
  46. too-many-branches:
    Too many branches (14/12)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/onvif/config_flow.py#L273
  47. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/onvif/event.py#L352
  48. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/sql/sensor.py#L271
  49. too-many-try-statements:
    try clause contains 13 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/skybeacon/sensor.py#L150
  50. too-many-try-statements:
    try clause contains 14 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/citybikes/sensor.py#L224
  51. too-many-try-statements:
    try clause contains 3 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/roomba/config_flow.py#L340
  52. too-complex:
    'async_setup_entry' is too complex. The McCabe rating is 31
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/profiler/__init__.py#L76
  53. too-complex:
    '_log_object_sources' is too complex. The McCabe rating is 11
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/profiler/__init__.py#L490
  54. too-many-statements:
    Too many statements (71/50)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/profiler/__init__.py#L76
  55. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/lutron_caseta/config_flow.py#L228
  56. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/huawei_lte/notify.py#L57
  57. too-many-try-statements:
    try clause contains 6 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/template.py#L651
  58. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/debounce.py#L114
  59. too-complex:
    '_async_refresh' is too complex. The McCabe rating is 29
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/update_coordinator.py#L264
  60. too-many-branches:
    Too many branches (32/12)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/update_coordinator.py#L264
  61. too-many-statements:
    Too many statements (79/50)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/update_coordinator.py#L264
  62. too-many-try-statements:
    try clause contains 6 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/script.py#L414
  63. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/script.py#L623
  64. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/script.py#L1002
  65. too-many-try-statements:
    try clause contains 11 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/entity_platform.py#L361
  66. too-many-statements:
    Too many statements (53/50)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/entity_platform.py#L301
  67. too-complex:
    'check' is too complex. The McCabe rating is 14
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/scripts/check_config.py#L157
  68. too-many-try-statements:
    try clause contains 8 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/scripts/check_config.py#L206
  69. too-many-try-statements:
    try clause contains 6 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/util/file.py#L57
  70. too-complex:
    'call' is too complex. The McCabe rating is 13
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/util/__init__.py#L127

The following messages are no longer emitted:

  1. too-complex:
    '_async_setup_component' is too complex. The McCabe rating is 25
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/setup.py#L168
  2. too-many-try-statements:
    try clause contains 5 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/setup.py#L273
  3. too-many-branches:
    Too many branches (21/12)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/setup.py#L168
  4. too-many-statements:
    Too many statements (73/50)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/setup.py#L168
  5. too-many-try-statements:
    try clause contains 6 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/aurora_abb_powerone/sensor.py#L95
  6. too-many-try-statements:
    try clause contains 6 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/aurora_abb_powerone/config_flow.py#L42
  7. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/dlna_dmr/media_player.py#L431
  8. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/emulated_hue/hue_api.py#L892
  9. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/mqtt/client.py#L894
  10. too-many-statements:
    Too many statements (81/50)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/mqtt/__init__.py#L183
  11. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/airvisual_pro/config_flow.py#L52
  12. too-many-branches:
    Too many branches (13/12)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/motioneye/config_flow.py#L48
  13. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/esphome/voice_assistant.py#L328
  14. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/esphome/config_flow.py#L336
  15. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/zha/api.py#L76
  16. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/tradfri/config_flow.py#L143
  17. too-complex:
    'async_log_errors' is too complex. The McCabe rating is 12
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/denonavr/media_player.py#L139
  18. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/upnp/__init__.py#L73
  19. too-many-statements:
    Too many statements (58/50)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/upnp/__init__.py#L40
  20. too-many-try-statements:
    try clause contains 16 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/voip/voip.py#L232
  21. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/voip/voip.py#L250
  22. too-many-try-statements:
    try clause contains 8 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/voip/voip.py#L389
  23. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/baf/config_flow.py#L29
  24. too-complex:
    'async_handle' is too complex. The McCabe rating is 29
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/websocket_api/http.py#L266
  25. too-many-try-statements:
    try clause contains 26 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/websocket_api/http.py#L131
  26. too-many-try-statements:
    try clause contains 41 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/websocket_api/http.py#L301
  27. too-many-branches:
    Too many branches (29/12)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/websocket_api/http.py#L266
  28. too-many-statements:
    Too many statements (115/50)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/websocket_api/http.py#L266
  29. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/led_ble/__init__.py#L80
  30. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/mysensors/gateway.py#L108
  31. too-complex:
    'websocket_run' is too complex. The McCabe rating is 15
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/assist_pipeline/websocket_api.py#L83
  32. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/assist_pipeline/websocket_api.py#L191
  33. too-many-try-statements:
    try clause contains 3 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/homekit_controller/connection.py#L806
  34. too-many-try-statements:
    try clause contains 8 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/buienradar/util.py#L93
  35. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/recorder/core.py#L963
  36. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/recorder/util.py#L129
  37. too-many-try-statements:
    try clause contains 3 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/heos/config_flow.py#L66
  38. too-complex:
    'async_setup_entry' is too complex. The McCabe rating is 12
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/matter/__init__.py#L38
  39. too-many-try-statements:
    try clause contains 3 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/reolink/host.py#L500
  40. too-many-branches:
    Too many branches (14/12)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/reolink/config_flow.py#L110
  41. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/network/util.py#L143
  42. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/picotts/tts.py#L57
  43. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/api/__init__.py#L124
  44. too-many-try-statements:
    try clause contains 14 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/onvif/config_flow.py#L289
  45. too-many-branches:
    Too many branches (15/12)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/onvif/config_flow.py#L273
  46. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/onvif/event.py#L352
  47. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/sql/sensor.py#L271
  48. too-many-try-statements:
    try clause contains 13 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/skybeacon/sensor.py#L150
  49. too-many-try-statements:
    try clause contains 14 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/citybikes/sensor.py#L224
  50. too-many-try-statements:
    try clause contains 3 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/roomba/config_flow.py#L340
  51. too-complex:
    'async_setup_entry' is too complex. The McCabe rating is 30
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/profiler/__init__.py#L76
  52. too-many-statements:
    Too many statements (72/50)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/profiler/__init__.py#L76
  53. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/lutron_caseta/config_flow.py#L228
  54. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/huawei_lte/notify.py#L57
  55. too-many-branches:
    Too many branches (13/12)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/components/huawei_lte/__init__.py#L184
  56. too-many-try-statements:
    try clause contains 6 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/template.py#L651
  57. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/debounce.py#L114
  58. too-complex:
    '_async_refresh' is too complex. The McCabe rating is 31
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/update_coordinator.py#L264
  59. too-many-branches:
    Too many branches (33/12)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/update_coordinator.py#L264
  60. too-many-statements:
    Too many statements (80/50)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/update_coordinator.py#L264
  61. too-many-try-statements:
    try clause contains 6 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/script.py#L414
  62. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/script.py#L623
  63. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/script.py#L1002
  64. too-many-try-statements:
    try clause contains 11 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/entity_platform.py#L361
  65. too-many-branches:
    Too many branches (13/12)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/entity_platform.py#L301
  66. too-many-statements:
    Too many statements (54/50)
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/helpers/entity_platform.py#L301
  67. too-complex:
    'check' is too complex. The McCabe rating is 16
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/scripts/check_config.py#L157
  68. too-many-try-statements:
    try clause contains 8 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/scripts/check_config.py#L206
  69. too-many-try-statements:
    try clause contains 6 statements, expected at most 1
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/util/file.py#L57
  70. too-complex:
    'call' is too complex. The McCabe rating is 12
    https://github.com/home-assistant/core/blob/18dddd63423e5d998bfcdc5e6bb6fb3d301ec12b/homeassistant/util/__init__.py#L127

Effect on poetry-core:
The following messages are now emitted:

  1. too-many-try-statements:
    try clause contains 3 statements, expected at most 1
    https://github.com/python-poetry/poetry-core/blob/5d3abc51bb765d825f3162f34595d853b249a8eb/src/poetry/core/vcs/__init__.py#L17

The following messages are no longer emitted:

  1. too-many-try-statements:
    try clause contains 3 statements, expected at most 1
    https://github.com/python-poetry/poetry-core/blob/5d3abc51bb765d825f3162f34595d853b249a8eb/src/poetry/core/vcs/__init__.py#L17

Effect on black:
The following messages are now emitted:

  1. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/psf/black/blob/b4dca26c7d93f930bbd5a7b552807370b60d4298/src/black/__init__.py#L887
  2. too-complex:
    'generate_matches' is too complex. The McCabe rating is 12
    https://github.com/psf/black/blob/b4dca26c7d93f930bbd5a7b552807370b60d4298/src/blib2to3/pytree.py#L822
  3. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/psf/black/blob/b4dca26c7d93f930bbd5a7b552807370b60d4298/src/blib2to3/pytree.py#L851
  4. too-many-branches:
    Too many branches (13/12)
    https://github.com/psf/black/blob/b4dca26c7d93f930bbd5a7b552807370b60d4298/src/blib2to3/pytree.py#L822

The following messages are no longer emitted:

  1. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/psf/black/blob/b4dca26c7d93f930bbd5a7b552807370b60d4298/src/black/__init__.py#L887
  2. too-complex:
    'generate_matches' is too complex. The McCabe rating is 13
    https://github.com/psf/black/blob/b4dca26c7d93f930bbd5a7b552807370b60d4298/src/blib2to3/pytree.py#L822
  3. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/psf/black/blob/b4dca26c7d93f930bbd5a7b552807370b60d4298/src/blib2to3/pytree.py#L851
  4. too-many-branches:
    Too many branches (14/12)
    https://github.com/psf/black/blob/b4dca26c7d93f930bbd5a7b552807370b60d4298/src/blib2to3/pytree.py#L822

Effect on pytest:
The following messages are now emitted:

  1. too-complex:
    'wrap_session' is too complex. The McCabe rating is 14
    https://github.com/pytest-dev/pytest/blob/782cacf86bc6579c3395dbe784a69c8a70651fff/src/_pytest/main.py#L257
  2. too-many-branches:
    Too many branches (15/12)
    https://github.com/pytest-dev/pytest/blob/782cacf86bc6579c3395dbe784a69c8a70651fff/src/_pytest/main.py#L257
  3. too-many-statements:
    Too many statements (51/50)
    https://github.com/pytest-dev/pytest/blob/782cacf86bc6579c3395dbe784a69c8a70651fff/src/_pytest/main.py#L257
  4. too-many-branches:
    Too many branches (13/12)
    https://github.com/pytest-dev/pytest/blob/782cacf86bc6579c3395dbe784a69c8a70651fff/src/_pytest/unittest.py#L148
  5. too-many-try-statements:
    try clause contains 5 statements, expected at most 1
    https://github.com/pytest-dev/pytest/blob/782cacf86bc6579c3395dbe784a69c8a70651fff/src/_pytest/pathlib.py#L288

The following messages are no longer emitted:

  1. too-complex:
    'wrap_session' is too complex. The McCabe rating is 17
    https://github.com/pytest-dev/pytest/blob/782cacf86bc6579c3395dbe784a69c8a70651fff/src/_pytest/main.py#L257
  2. too-many-branches:
    Too many branches (16/12)
    https://github.com/pytest-dev/pytest/blob/782cacf86bc6579c3395dbe784a69c8a70651fff/src/_pytest/main.py#L257
  3. too-many-statements:
    Too many statements (52/50)
    https://github.com/pytest-dev/pytest/blob/782cacf86bc6579c3395dbe784a69c8a70651fff/src/_pytest/main.py#L257
  4. too-many-branches:
    Too many branches (14/12)
    https://github.com/pytest-dev/pytest/blob/782cacf86bc6579c3395dbe784a69c8a70651fff/src/_pytest/unittest.py#L148
  5. too-many-try-statements:
    try clause contains 5 statements, expected at most 1
    https://github.com/pytest-dev/pytest/blob/782cacf86bc6579c3395dbe784a69c8a70651fff/src/_pytest/pathlib.py#L288

Effect on django:
The following messages are now emitted:

  1. too-complex:
    'save' is too complex. The McCabe rating is 12
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/contrib/sessions/backends/file.py#L117
  2. too-complex:
    'exit' is too complex. The McCabe rating is 22
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/db/transaction.py#L224
  3. too-many-branches:
    Too many branches (26/12)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/db/transaction.py#L224
  4. too-many-statements:
    Too many statements (58/50)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/db/transaction.py#L224
  5. too-complex:
    This 'try' is too complex. The McCabe rating is 12
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/db/backends/postgresql/psycopg_any.py#L4
  6. too-complex:
    'as_sql' is too complex. The McCabe rating is 39
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/db/models/sql/compiler.py#L725
  7. too-complex:
    'execute_sql' is too complex. The McCabe rating is 14
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/db/models/sql/compiler.py#L1532
  8. too-many-branches:
    Too many branches (39/12)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/db/models/sql/compiler.py#L725
  9. too-many-statements:
    Too many statements (111/50)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/db/models/sql/compiler.py#L725
  10. too-many-branches:
    Too many branches (13/12)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/db/models/sql/compiler.py#L1532
  11. too-many-branches:
    Too many branches (14/12)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/core/files/images.py#L34
  12. too-complex:
    'file_move_safe' is too complex. The McCabe rating is 14
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/core/files/move.py#L30
  13. too-complex:
    '_save' is too complex. The McCabe rating is 13
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/core/files/storage/filesystem.py#L70
  14. too-many-branches:
    Too many branches (15/12)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/core/files/storage/filesystem.py#L70
  15. too-many-try-statements:
    try clause contains 7 statements, expected at most 1
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/core/management/commands/loaddata.py#L242
  16. too-many-branches:
    Too many branches (28/12)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/core/management/commands/dumpdata.py#L103
  17. too-many-statements:
    Too many statements (113/50)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/core/management/commands/dumpdata.py#L103
  18. too-many-branches:
    Too many branches (28/12)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/core/management/commands/makemessages.py#L326
  19. too-many-statements:
    Too many statements (90/50)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/core/management/commands/makemessages.py#L326
  20. too-complex:
    '_populate' is too complex. The McCabe rating is 11
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/urls/resolvers.py#L530
  21. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/test/runner.py#L1042
  22. too-many-try-statements:
    try clause contains 7 statements, expected at most 1
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/test/testcases.py#L1602

The following messages are no longer emitted:

  1. too-complex:
    'save' is too complex. The McCabe rating is 11
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/contrib/sessions/backends/file.py#L117
  2. too-complex:
    'exit' is too complex. The McCabe rating is 25
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/db/transaction.py#L224
  3. too-many-branches:
    Too many branches (27/12)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/db/transaction.py#L224
  4. too-many-statements:
    Too many statements (59/50)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/db/transaction.py#L224
  5. too-complex:
    This 'tryexcept' is too complex. The McCabe rating is 12
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/db/backends/postgresql/psycopg_any.py#L4
  6. too-complex:
    'as_sql' is too complex. The McCabe rating is 38
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/db/models/sql/compiler.py#L725
  7. too-complex:
    'execute_sql' is too complex. The McCabe rating is 13
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/db/models/sql/compiler.py#L1532
  8. too-many-branches:
    Too many branches (40/12)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/db/models/sql/compiler.py#L725
  9. too-many-statements:
    Too many statements (112/50)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/db/models/sql/compiler.py#L725
  10. too-many-branches:
    Too many branches (14/12)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/db/models/sql/compiler.py#L1532
  11. too-many-branches:
    Too many branches (15/12)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/core/files/images.py#L34
  12. too-complex:
    'file_move_safe' is too complex. The McCabe rating is 13
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/core/files/move.py#L30
  13. too-complex:
    '_save' is too complex. The McCabe rating is 12
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/core/files/storage/filesystem.py#L70
  14. too-many-branches:
    Too many branches (17/12)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/core/files/storage/filesystem.py#L70
  15. too-many-try-statements:
    try clause contains 7 statements, expected at most 1
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/core/management/commands/loaddata.py#L242
  16. too-many-nested-blocks:
    Too many nested blocks (6/5)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/core/management/commands/loaddata.py#L228
  17. too-many-branches:
    Too many branches (29/12)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/core/management/commands/dumpdata.py#L103
  18. too-many-statements:
    Too many statements (114/50)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/core/management/commands/dumpdata.py#L103
  19. too-many-branches:
    Too many branches (29/12)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/core/management/commands/makemessages.py#L326
  20. too-many-statements:
    Too many statements (91/50)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/core/management/commands/makemessages.py#L326
  21. too-many-branches:
    Too many branches (13/12)
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/urls/resolvers.py#L530
  22. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/test/runner.py#L1042
  23. too-many-try-statements:
    try clause contains 7 statements, expected at most 1
    https://github.com/django/django/blob/2584783f46922bcb456ceb9700a3726314df65d3/django/test/testcases.py#L1602

Effect on pandas:
The following messages are now emitted:

  1. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/pandas-dev/pandas/blob/c126eeb39206e1fb68db19e9289f30b35e25fa9f/pandas/io/sql.py#L2211
  2. too-complex:
    'init_windows_clipboard' is too complex. The McCabe rating is 12
    https://github.com/pandas-dev/pandas/blob/c126eeb39206e1fb68db19e9289f30b35e25fa9f/pandas/io/clipboard/__init__.py#L322
  3. too-many-statements:
    Too many statements (70/50)
    https://github.com/pandas-dev/pandas/blob/c126eeb39206e1fb68db19e9289f30b35e25fa9f/pandas/io/clipboard/__init__.py#L322

The following messages are no longer emitted:

  1. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/pandas-dev/pandas/blob/c126eeb39206e1fb68db19e9289f30b35e25fa9f/pandas/io/sql.py#L2211
  2. too-many-statements:
    Too many statements (72/50)
    https://github.com/pandas-dev/pandas/blob/c126eeb39206e1fb68db19e9289f30b35e25fa9f/pandas/io/clipboard/__init__.py#L322
  3. too-complex:
    'test_copy' is too complex. The McCabe rating is 11
    https://github.com/pandas-dev/pandas/blob/c126eeb39206e1fb68db19e9289f30b35e25fa9f/pandas/tests/io/pytables/test_store.py#L835

Effect on sentry:
The following messages are now emitted:

  1. too-many-branches:
    Too many branches (20/12)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/http.py#L142
  2. too-many-statements:
    Too many statements (59/50)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/http.py#L142
  3. too-complex:
    'index_artifact_bundles_for_release' is too complex. The McCabe rating is 14
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/debug_files/artifact_bundles.py#L57
  4. too-many-branches:
    Too many branches (13/12)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/debug_files/artifact_bundles.py#L57
  5. too-complex:
    'process_pending' is too complex. The McCabe rating is 14
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/buffer/redis.py#L254
  6. too-complex:
    '_process_single_incr' is too complex. The McCabe rating is 12
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/buffer/redis.py#L326
  7. too-many-branches:
    Too many branches (15/12)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/buffer/redis.py#L254
  8. too-many-branches:
    Too many branches (15/12)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/buffer/redis.py#L326
  9. too-many-try-statements:
    try clause contains 7 statements, expected at most 1
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/management/commands/send_fake_data.py#L86
  10. too-many-branches:
    Too many branches (13/12)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/management/commands/send_fake_data.py#L52
  11. too-complex:
    'run' is too complex. The McCabe rating is 12
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/lint/engine.py#L278
  12. too-complex:
    'stale_database_reads' is too complex. The McCabe rating is 12
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/utils/pytest/stale_database_reads.py#L91
  13. too-many-try-statements:
    try clause contains 17 statements, expected at most 1
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/tasks/assemble.py#L115
  14. too-complex:
    'poll_project_recap_server' is too complex. The McCabe rating is 13
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/tasks/recap_servers.py#L54
  15. too-complex:
    '_do_save_event' is too complex. The McCabe rating is 14
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/tasks/store.py#L634
  16. too-many-try-statements:
    try clause contains 10 statements, expected at most 1
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/tasks/store.py#L694
  17. too-many-branches:
    Too many branches (15/12)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/tasks/store.py#L634
  18. too-complex:
    'process_stacktraces' is too complex. The McCabe rating is 16
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/stacktraces/processing.py#L502
  19. too-many-try-statements:
    try clause contains 29 statements, expected at most 1
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/stacktraces/processing.py#L518
  20. too-many-branches:
    Too many branches (17/12)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/stacktraces/processing.py#L502
  21. too-complex:
    'simulate_on_commit' is too complex. The McCabe rating is 11
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/testutils/hybrid_cloud.py#L159
  22. too-complex:
    'cleanup' is too complex. The McCabe rating is 51
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/runner/commands/cleanup.py#L119
  23. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/runner/commands/cleanup.py#L79
  24. too-many-branches:
    Too many branches (58/12)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/runner/commands/cleanup.py#L119
  25. too-many-statements:
    Too many statements (137/50)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/runner/commands/cleanup.py#L119
  26. too-complex:
    'transfer_to' is too complex. The McCabe rating is 11
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/models/team.py#L224
  27. too-complex:
    'from_files' is too complex. The McCabe rating is 18
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/models/files/abstractfileblob.py#L39
  28. too-many-statements:
    Too many statements (65/50)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/models/files/abstractfileblob.py#L39

The following messages are no longer emitted:

  1. too-many-branches:
    Too many branches (21/12)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/http.py#L142
  2. too-many-statements:
    Too many statements (60/50)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/http.py#L142
  3. too-complex:
    'index_artifact_bundles_for_release' is too complex. The McCabe rating is 13
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/debug_files/artifact_bundles.py#L57
  4. too-many-branches:
    Too many branches (14/12)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/debug_files/artifact_bundles.py#L57
  5. too-complex:
    'process_pending' is too complex. The McCabe rating is 13
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/buffer/redis.py#L254
  6. too-complex:
    '_process_single_incr' is too complex. The McCabe rating is 11
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/buffer/redis.py#L326
  7. too-many-branches:
    Too many branches (16/12)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/buffer/redis.py#L254
  8. too-many-branches:
    Too many branches (16/12)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/buffer/redis.py#L326
  9. too-complex:
    'handle' is too complex. The McCabe rating is 11
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/management/commands/send_fake_data.py#L52
  10. too-many-try-statements:
    try clause contains 7 statements, expected at most 1
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/management/commands/send_fake_data.py#L86
  11. too-many-branches:
    Too many branches (14/12)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/management/commands/send_fake_data.py#L52
  12. too-complex:
    'run' is too complex. The McCabe rating is 11
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/lint/engine.py#L278
  13. too-many-try-statements:
    try clause contains 17 statements, expected at most 1
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/tasks/assemble.py#L115
  14. too-complex:
    'poll_project_recap_server' is too complex. The McCabe rating is 12
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/tasks/recap_servers.py#L54
  15. too-complex:
    '_do_save_event' is too complex. The McCabe rating is 16
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/tasks/store.py#L634
  16. too-many-try-statements:
    try clause contains 10 statements, expected at most 1
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/tasks/store.py#L694
  17. too-many-branches:
    Too many branches (16/12)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/tasks/store.py#L634
  18. too-complex:
    'process_stacktraces' is too complex. The McCabe rating is 17
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/stacktraces/processing.py#L502
  19. too-many-try-statements:
    try clause contains 29 statements, expected at most 1
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/stacktraces/processing.py#L518
  20. too-many-branches:
    Too many branches (18/12)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/stacktraces/processing.py#L502
  21. too-complex:
    'cleanup' is too complex. The McCabe rating is 52
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/runner/commands/cleanup.py#L119
  22. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/runner/commands/cleanup.py#L79
  23. too-many-branches:
    Too many branches (59/12)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/runner/commands/cleanup.py#L119
  24. too-many-statements:
    Too many statements (138/50)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/runner/commands/cleanup.py#L119
  25. too-complex:
    'from_files' is too complex. The McCabe rating is 20
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/models/files/abstractfileblob.py#L39
  26. too-many-statements:
    Too many statements (66/50)
    https://github.com/getsentry/sentry/blob/82e0ba1a4ffcdc7d9b1ee2a0bba40f0b661cfc33/src/sentry/models/files/abstractfileblob.py#L39

Effect on flask:
The following messages are now emitted:

  1. too-complex:
    'run' is too complex. The McCabe rating is 12
    https://github.com/pallets/flask/blob/cb825687a592709f902f3d320d93987a0546fd28/src/flask/app.py#L773
  2. too-many-branches:
    Too many branches (13/12)
    https://github.com/pallets/flask/blob/cb825687a592709f902f3d320d93987a0546fd28/src/flask/app.py#L773

The following messages are no longer emitted:

  1. too-complex:
    'run' is too complex. The McCabe rating is 11
    https://github.com/pallets/flask/blob/cb825687a592709f902f3d320d93987a0546fd28/src/flask/app.py#L773
  2. too-many-branches:
    Too many branches (14/12)
    https://github.com/pallets/flask/blob/cb825687a592709f902f3d320d93987a0546fd28/src/flask/app.py#L773

Effect on psycopg:
The following messages are now emitted:

  1. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/psycopg/psycopg/blob/2ca04b77dbe1ea50a422fcefeda22fa756be754c/psycopg/psycopg/_pipeline.py#L247
  2. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/psycopg/psycopg/blob/2ca04b77dbe1ea50a422fcefeda22fa756be754c/psycopg/psycopg/_pipeline.py#L288
  3. too-many-try-statements:
    try clause contains 6 statements, expected at most 1
    https://github.com/psycopg/psycopg/blob/2ca04b77dbe1ea50a422fcefeda22fa756be754c/psycopg/psycopg/cursor_async.py#L138
  4. too-many-try-statements:
    try clause contains 6 statements, expected at most 1
    https://github.com/psycopg/psycopg/blob/2ca04b77dbe1ea50a422fcefeda22fa756be754c/psycopg/psycopg/cursor.py#L758
  5. too-complex:
    'wait_conn_async' is too complex. The McCabe rating is 11
    https://github.com/psycopg/psycopg/blob/2ca04b77dbe1ea50a422fcefeda22fa756be754c/psycopg/psycopg/waiting.py#L149

The following messages are no longer emitted:

  1. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/psycopg/psycopg/blob/2ca04b77dbe1ea50a422fcefeda22fa756be754c/psycopg/psycopg/_pipeline.py#L247
  2. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/psycopg/psycopg/blob/2ca04b77dbe1ea50a422fcefeda22fa756be754c/psycopg/psycopg/_pipeline.py#L288
  3. too-complex:
    'stream' is too complex. The McCabe rating is 11
    https://github.com/psycopg/psycopg/blob/2ca04b77dbe1ea50a422fcefeda22fa756be754c/psycopg/psycopg/cursor_async.py#L127
  4. too-many-try-statements:
    try clause contains 6 statements, expected at most 1
    https://github.com/psycopg/psycopg/blob/2ca04b77dbe1ea50a422fcefeda22fa756be754c/psycopg/psycopg/cursor_async.py#L138
  5. too-complex:
    'stream' is too complex. The McCabe rating is 11
    https://github.com/psycopg/psycopg/blob/2ca04b77dbe1ea50a422fcefeda22fa756be754c/psycopg/psycopg/cursor.py#L744
  6. too-many-try-statements:
    try clause contains 6 statements, expected at most 1
    https://github.com/psycopg/psycopg/blob/2ca04b77dbe1ea50a422fcefeda22fa756be754c/psycopg/psycopg/cursor.py#L758
  7. too-complex:
    'wait_conn_async' is too complex. The McCabe rating is 12
    https://github.com/psycopg/psycopg/blob/2ca04b77dbe1ea50a422fcefeda22fa756be754c/psycopg/psycopg/waiting.py#L149

Effect on coverage:
The following messages are now emitted:

  1. too-complex:
    'do_run' is too complex. The McCabe rating is 13
    https://github.com/nedbat/coveragepy/blob/7a32450257db47e10ac4f28451509a9a1577d564/coverage/cmdline.py#L813

The following messages are no longer emitted:

  1. too-complex:
    'do_run' is too complex. The McCabe rating is 14
    https://github.com/nedbat/coveragepy/blob/7a32450257db47e10ac4f28451509a9a1577d564/coverage/cmdline.py#L813

This comment was generated for commit a95880d

Copy link
Member

@Pierre-Sassoulas Pierre-Sassoulas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great refactor, glad it's being merged after so much time/work !

@jacobtylerwalls jacobtylerwalls merged commit 5bdc221 into pylint-dev:main Jul 10, 2023
38 checks passed
@cdce8p cdce8p deleted the new-try-node branch July 10, 2023 14:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Maintenance Discussion or action around maintaining pylint or the dev workflow
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants