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

Add --max-depth option to control diagram complexity #10077

Open
wants to merge 10 commits into
base: main
Choose a base branch
from

Conversation

Julfried
Copy link
Contributor

@Julfried Julfried commented Nov 11, 2024

Type of Changes

Type
πŸ› Bug fix
βœ“ ✨ New feature
πŸ”¨ Refactoring
πŸ“œ Docs

Description

This PR adds a new --max-depth option to pyreverse that allows basic controlling of the visualization depth of packages and classes in the generated diagrams. The depth is simply calculated by counting dots in qualified names, where depth 0 represents top-level packages/classes.

For packages, the full path depth is considered. For classes, the depth is calculated based on their containing module to ensure meaningful class diagrams while respecting the depth limit.

Closes #9233

@Julfried Julfried requested a review from DudeNr33 as a code owner November 11, 2024 16:12
@Julfried Julfried changed the title Set depth Add --max-depth option to control diagram complexity Nov 11, 2024
Copy link

codecov bot commented Nov 11, 2024

Codecov Report

Attention: Patch coverage is 42.85714% with 16 lines in your changes missing coverage. Please review.

Project coverage is 95.72%. Comparing base (614f80e) to head (7c95c20).

Files with missing lines Patch % Lines
pylint/pyreverse/writer.py 40.74% 16 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main   #10077      +/-   ##
==========================================
- Coverage   95.80%   95.72%   -0.08%     
==========================================
  Files         174      174              
  Lines       18962    18990      +28     
==========================================
+ Hits        18166    18178      +12     
- Misses        796      812      +16     
Files with missing lines Coverage Ξ”
pylint/pyreverse/main.py 91.66% <ΓΈ> (ΓΈ)
pylint/testutils/pyreverse.py 98.11% <100.00%> (+0.03%) ⬆️
pylint/pyreverse/writer.py 86.44% <40.74%> (-13.56%) ⬇️

@Pierre-Sassoulas Pierre-Sassoulas added Enhancement ✨ Improvement to a component pyreverse Related to pyreverse component labels Nov 11, 2024
@Pierre-Sassoulas Pierre-Sassoulas added this to the 4.0.0 milestone Nov 11, 2024

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

@Julfried
Copy link
Contributor Author

Quick update: I've completed the implementation and added tests for the --max-depth option. I believe the feature is working as intended and is ready for review. I’m currently fighting some CI issues, but they seem unrelated to my changes. Any help or advice would be much appreciated!

Copy link
Contributor

πŸ€– Effect of this PR on checked open source code: πŸ€–

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

  1. too-many-lines:
    Too many lines in module (1132/1000)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/const.py#L1
  2. locally-disabled:
    Locally disabling import-outside-toplevel (C0415)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L543
  3. locally-disabled:
    Locally disabling import-outside-toplevel (C0415)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L872
  4. locally-disabled:
    Locally disabling import-outside-toplevel (C0415)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L890
  5. locally-disabled:
    Locally disabling broad-exception-caught (W0718)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L905
  6. too-complex:
    'async_process_ha_core_config' is too complex. The McCabe rating is 19
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L351
  7. too-complex:
    '_async_update' is too complex. The McCabe rating is 15
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L737
  8. too-many-branches:
    Too many branches (18/12)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L351
  9. too-many-statements:
    Too many statements (51/50)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L351
  10. magic-value-comparison:
    Consider using a named constant or an enum instead of ''.''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L514
  11. magic-value-comparison:
    Consider using a named constant or an enum instead of ''.''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L525
  12. too-many-instance-attributes:
    Too many instance attributes (30/7)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L535
  13. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L657
  14. consider-ternary-expression:
    Consider rewriting as a ternary expression
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L659
  15. too-many-arguments:
    Too many arguments (14/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L737
  16. too-many-branches:
    Too many branches (13/12)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L737
  17. protected-access:
    Access to a protected member _name of a client class
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L836
  18. magic-value-comparison:
    Consider using a named constant or an enum instead of '2'.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L875
  19. magic-value-comparison:
    Consider using a named constant or an enum instead of '3'.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L882
  20. too-many-try-statements:
    try clause contains 7 statements, expected at most 1
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L886
  21. consider-using-assignment-expr:
    Use 'if (owner := await self.hass.auth.async_get_owner()) is not None:' instead
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L888
  22. magic-value-comparison:
    Consider using a named constant or an enum instead of ''language''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L897
  23. magic-value-comparison:
    Consider using a named constant or an enum instead of ''language''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L898
  24. magic-value-comparison:
    Consider using a named constant or an enum instead of '4'.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L907
  25. suppressed-message:
    Suppressed 'import-outside-toplevel' (from line 543)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L543
  26. suppressed-message:
    Suppressed 'import-outside-toplevel' (from line 872)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L872
  27. suppressed-message:
    Suppressed 'broad-exception-caught' (from line 905)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L905
  28. suppressed-message:
    Suppressed 'import-outside-toplevel' (from line 890)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core_config.py#L890
  29. locally-disabled:
    Locally disabling broad-exception-caught (W0718)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L812
  30. empty-comment:
    Line with empty comment
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L818
  31. empty-comment:
    Line with empty comment
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L822
  32. empty-comment:
    Line with empty comment
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L825
  33. line-too-long:
    Line too long (109/100)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L455
  34. line-too-long:
    Line too long (108/100)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L2604
  35. too-many-lines:
    Too many lines in module (3635/1000)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1
  36. too-complex:
    '__async_setup_with_context' is too complex. The McCabe rating is 23
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L644
  37. too-complex:
    'async_unload' is too complex. The McCabe rating is 17
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L891
  38. too-complex:
    'async_migrate' is too complex. The McCabe rating is 11
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1037
  39. too-complex:
    'async_finish_flow' is too complex. The McCabe rating is 15
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1462
  40. too-complex:
    '_async_migrate_func' is too complex. The McCabe rating is 12
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1845
  41. too-complex:
    '_async_update_entry' is too complex. The McCabe rating is 12
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L2288
  42. too-complex:
    'async_update_issues' is too complex. The McCabe rating is 11
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L2625
  43. import-error:
    Unable to import 'async_interrupt'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L28
  44. import-error:
    Unable to import 'propcache'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L29
  45. import-error:
    Unable to import 'voluptuous'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L31
  46. too-few-public-methods:
    Too few public methods (0/2)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L303
  47. too-many-arguments:
    Too many arguments (18/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L406
  48. too-many-locals:
    Too many local variables (23/15)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L406
  49. magic-value-comparison:
    Consider using a named constant or an enum instead of ''subentry_id''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L453
  50. too-many-locals:
    Too many local variables (17/15)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L644
  51. too-many-try-statements:
    try clause contains 5 statements, expected at most 1
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L725
  52. too-many-branches:
    Too many branches (22/12)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L644
  53. too-many-statements:
    Too many statements (84/50)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L644
  54. consider-using-assignment-expr:
    Use 'if not (supports_unload := hasattr(component, 'async_unload_entry')):' instead
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L936
  55. broad-exception-caught:
    Catching too general exception Exception
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L956
  56. too-many-try-statements:
    try clause contains 7 statements, expected at most 1
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L943
  57. too-many-return-statements:
    Too many return statements (8/6)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L891
  58. too-many-branches:
    Too many branches (14/12)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L891
  59. broad-exception-caught:
    Catching too general exception Exception
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L999
  60. too-many-arguments:
    Too many arguments (6/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1009
  61. too-many-positional-arguments:
    Too many positional arguments (6/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1009
  62. while-used:
    Used while loop
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1050
  63. consider-using-assignment-expr:
    Use 'if not (supports_migrate := hasattr(component, 'async_migrate_entry')):' instead
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1061
  64. broad-exception-caught:
    Catching too general exception Exception
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1080
  65. too-many-try-statements:
    try clause contains 6 statements, expected at most 1
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1071
  66. protected-access:
    Access to a protected member _async_schedule_save of a client class
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1079
  67. too-many-return-statements:
    Too many return statements (7/6)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1037
  68. while-used:
    Used while loop
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1128
  69. too-many-public-methods:
    Too many public methods (21/20)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L367
  70. consider-using-any-or-all:
    for loop could be any(flow.flow_id != flow_id and flow.context['source'] in DISCOVERY_SOURCES for flow in self._progress.values())
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1341
  71. magic-value-comparison:
    Consider using a named constant or an enum instead of ''source''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1354
  72. magic-value-comparison:
    Consider using a named constant or an enum instead of ''entry_id''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1361
  73. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1399
  74. consider-using-assignment-expr:
    Use 'if not (flow := await self.async_create_flow(handler, context=context, data=data)):' instead
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1431
  75. protected-access:
    Access to a protected member _async_remove of a client class
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1605
  76. protected-access:
    Access to a protected member _async_clean_up of a client class
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1611
  77. too-many-branches:
    Too many branches (14/12)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1462
  78. magic-value-comparison:
    Consider using a named constant or an enum instead of ''source''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1630
  79. consider-using-any-or-all:
    for loop could be any(match_items <= progress.context.items() and progress.init_data == data for progress in flows)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1689
  80. consider-using-any-or-all:
    for loop could be any(other_flow is not flow and flow.is_matching(other_flow) for other_flow in set(flows))
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1699
  81. consider-using-assignment-expr:
    Use 'if not (entries := self._domain_unique_id_index.get(domain, {}).get(unique_id)):' instead
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1828
  82. magic-value-comparison:
    Consider using a named constant or an enum instead of '2'.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1854
  83. magic-value-comparison:
    Consider using a named constant or an enum instead of ''system_options''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1860
  84. magic-value-comparison:
    Consider using a named constant or an enum instead of '3'.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1876
  85. magic-value-comparison:
    Consider using a named constant or an enum instead of '4'.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1882
  86. magic-value-comparison:
    Consider using a named constant or an enum instead of '5'.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1887
  87. consider-using-any-or-all:
    for loop could be any((include_ignore or entry.source != SOURCE_IGNORE) and (include_disabled or not entry.disabled_by) for entry in entries)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1956
  88. consider-ternary-expression:
    Consider rewriting as a ternary expression
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L2035
  89. magic-value-comparison:
    Consider using a named constant or an enum instead of ''flow_id''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L2065
  90. unused-argument:
    Unused argument 'event'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L2073
  91. too-many-arguments:
    Too many arguments (11/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L2251
  92. too-many-arguments:
    Too many arguments (12/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L2288
  93. too-many-locals:
    Too many local variables (18/15)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L2288
  94. magic-value-comparison:
    Consider using a named constant or an enum instead of ''flipr''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L2326
  95. no-self-use:
    Method could be a function
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L2414
  96. protected-access:
    Access to a protected member _domain_unique_id_index of a client class
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L2639
  97. magic-value-comparison:
    Consider using a named constant or an enum instead of ''flipr''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L2644
  98. redefined-loop-name:
    Redefining 'entries' from loop (line 2646)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L2649
  99. magic-value-comparison:
    Consider using a named constant or an enum instead of '2'.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L2658
  100. too-many-public-methods:
    Too many public methods (25/20)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L1897
  101. unused-argument:
    Unused argument 'config_entry'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L2756
  102. unused-argument:
    Unused argument 'config_entry'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L2770
  103. unused-argument:
    Unused argument 'user_input'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L2953
  104. unused-argument:
    Unused argument 'discovery_info'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L2993
  105. unused-argument:
    Unused argument 'discovery_info'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3022
  106. unused-argument:
    Unused argument 'discovery_info'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3028
  107. unused-argument:
    Unused argument 'discovery_info'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3034
  108. unused-argument:
    Unused argument 'discovery_info'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3040
  109. unused-argument:
    Unused argument 'discovery_info'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3046
  110. unused-argument:
    Unused argument 'discovery_info'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3052
  111. unused-argument:
    Unused argument 'discovery_info'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3058
  112. unused-argument:
    Unused argument 'discovery_info'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3063
  113. unused-argument:
    Unused argument 'discovery_info'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3068
  114. too-many-arguments:
    Too many arguments (7/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3074
  115. too-many-arguments:
    Too many arguments (9/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3108
  116. missing-param-doc:
    "entry" missing in parameter documentation
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3108
  117. too-many-arguments:
    Too many arguments (7/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3155
  118. magic-value-comparison:
    Consider using a named constant or an enum instead of ''entry_id''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3169
  119. too-many-public-methods:
    Too many public methods (23/20)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L2731
  120. too-few-public-methods:
    Too few public methods (0/2)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3217
  121. magic-value-comparison:
    Consider using a named constant or an enum instead of ''source''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3246
  122. consider-using-assignment-expr:
    Use 'if (entry := self.hass.config_entries.async_get_entry(entry_id)) is None:' instead
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3278
  123. too-many-arguments:
    Too many arguments (6/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3307
  124. too-few-public-methods:
    Too few public methods (1/2)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3481
  125. magic-value-comparison:
    Consider using a named constant or an enum instead of ''update''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3571
  126. magic-value-comparison:
    Consider using a named constant or an enum instead of ''disabled_by''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L3572
  127. suppressed-message:
    Suppressed 'broad-exception-caught' (from line 812)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/config_entries.py#L812
  128. line-too-long:
    Line too long (104/100)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/backup_restore.py#L112
  129. import-error:
    Unable to import 'collections.abc'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/backup_restore.py#L5
  130. import-error:
    Unable to import 'awesomeversion'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/backup_restore.py#L15
  131. import-error:
    Unable to import 'securetar'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/backup_restore.py#L16
  132. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/backup_restore.py#L56
  133. too-many-lines:
    Too many lines in module (2853/1000)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core.py#L1
  134. too-complex:
    'async_call' is too complex. The McCabe rating is 16
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core.py#L2690
  135. too-many-arguments:
    Too many arguments (7/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core.py#L2437
  136. too-many-positional-arguments:
    Too many positional arguments (7/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core.py#L2437
  137. too-many-arguments:
    Too many arguments (6/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core.py#L2532
  138. too-many-positional-arguments:
    Too many positional arguments (6/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core.py#L2532
  139. too-many-arguments:
    Too many arguments (7/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core.py#L2558
  140. too-many-positional-arguments:
    Too many positional arguments (7/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core.py#L2558
  141. too-many-arguments:
    Too many arguments (7/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core.py#L2585
  142. too-many-positional-arguments:
    Too many positional arguments (7/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core.py#L2585
  143. consider-using-assignment-expr:
    Use 'if (service := service.lower()) not in self._services.get(domain, {}):' instead
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core.py#L2650
  144. too-many-arguments:
    Too many arguments (8/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core.py#L2663
  145. too-many-positional-arguments:
    Too many positional arguments (8/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core.py#L2663
  146. too-many-arguments:
    Too many arguments (8/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core.py#L2690
  147. too-many-positional-arguments:
    Too many positional arguments (8/5)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core.py#L2690
  148. confusing-consecutive-elif:
    Consecutive elif with differing indentation level, consider creating a function to separate the inner elif
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core.py#L2748
  149. too-many-branches:
    Too many branches (13/12)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core.py#L2690
  150. broad-exception-caught:
    Catching too general exception Exception
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core.py#L2824
  151. no-self-use:
    Method could be a function
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/core.py#L2808
  152. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'HusqvarnaAutomowerBleConfigFlow'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/husqvarna_automower_ble/config_flow.py#L42
  153. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'AgentFlowHandler'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/agent_dvr/config_flow.py#L20
  154. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'OSOEnergyFlowHandler'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/osoenergy/config_flow.py#L20
  155. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'BalboaSpaClientFlowHandler'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/balboa/config_flow.py#L53
  156. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'AqualinkFlowHandler'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/iaqualink/config_flow.py#L21
  157. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'HERETravelTimeConfigFlow'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/here_travel_time/config_flow.py#L101
  158. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'PushBulletConfigFlow'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/pushbullet/config_flow.py#L24
  159. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'SolarLogConfigFlow'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/solarlog/config_flow.py#L21
  160. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'IqviaConfigFlow'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/iqvia/config_flow.py#L17
  161. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'PingConfigFlow'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/ping/config_flow.py#L36
  162. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'IPPFlowHandler'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/ipp/config_flow.py#L57
  163. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'ScreenlogicConfigFlow'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/screenlogic/config_flow.py#L68
  164. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'AsusWrtFlowHandler'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/asuswrt/config_flow.py#L132
  165. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'WyomingConfigFlow'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/wyoming/config_flow.py#L29
  166. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'OAuth2FlowHandler'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/fitbit/config_flow.py#L18
  167. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'SimpleConfigFlow'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/local_ip/config_flow.py#L12
  168. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'PlayStation4FlowHandler'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/ps4/config_flow.py#L43
  169. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'EightSleepConfigFlow'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/eight_sleep/config_flow.py#L8
  170. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'SubaruConfigFlow'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/subaru/config_flow.py#L42
  171. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'BluetoothConfigFlow'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/bluetooth/config_flow.py#L50
  172. invalid-overridden-method:
    Method 'state_attributes' was expected to be 'method', found it instead as 'property'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/remote/__init__.py#L185
  173. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'AmberElectricConfigFlow'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/amberelectric/config_flow.py#L50
  174. import-error:
    Unable to import 'pydrawise'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/hydrawise/config_flow.py#L9
  175. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'HydrawiseConfigFlow'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/hydrawise/config_flow.py#L19
  176. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/hydrawise/config_flow.py#L41
  177. unused-argument:
    Unused argument 'entry_data'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/hydrawise/config_flow.py#L91
  178. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'ElectricKiwiOauth2FlowHandler'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/electric_kiwi/config_flow.py#L15
  179. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'LGSoundbarConfigFlow'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/lg_soundbar/config_flow.py#L70
  180. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'KmtronicConfigFlow'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/kmtronic/config_flow.py#L58
  181. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'SteamistConfigFlow'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/steamist/config_flow.py#L31
  182. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'AirZoneConfigFlow'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/airzone/config_flow.py#L42
  183. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'ForkedDaapdFlowHandler'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/forked_daapd/config_flow.py#L106
  184. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'SharkIqConfigFlow'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/sharkiq/config_flow.py#L79
  185. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'IsraelRailConfigFlow'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/israel_rail/config_flow.py#L27
  186. abstract-method:
    Method 'async_get_subentry_flow' is abstract in class 'ConfigFlow' but is not overridden in child class 'InsteonFlowHandler'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/insteon/config_flow.py#L51
  187. unexpected-keyword-arg:
    Unexpected keyword argument 'device_class' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L38
  188. unexpected-keyword-arg:
    Unexpected keyword argument 'entity_category' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L38
  189. unexpected-keyword-arg:
    Unexpected keyword argument 'translation_key' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L43
  190. unexpected-keyword-arg:
    Unexpected keyword argument 'entity_category' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L43
  191. unexpected-keyword-arg:
    Unexpected keyword argument 'translation_key' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L48
  192. unexpected-keyword-arg:
    Unexpected keyword argument 'entity_category' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L48
  193. unexpected-keyword-arg:
    Unexpected keyword argument 'translation_key' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L53
  194. unexpected-keyword-arg:
    Unexpected keyword argument 'entity_category' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L53
  195. unexpected-keyword-arg:
    Unexpected keyword argument 'translation_key' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L58
  196. unexpected-keyword-arg:
    Unexpected keyword argument 'entity_category' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L58
  197. unexpected-keyword-arg:
    Unexpected keyword argument 'translation_key' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L63
  198. unexpected-keyword-arg:
    Unexpected keyword argument 'entity_category' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L63
  199. unexpected-keyword-arg:
    Unexpected keyword argument 'translation_key' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L68
  200. unexpected-keyword-arg:
    Unexpected keyword argument 'entity_category' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L68
  201. unexpected-keyword-arg:
    Unexpected keyword argument 'translation_key' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L73
  202. unexpected-keyword-arg:
    Unexpected keyword argument 'entity_category' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L73
  203. unexpected-keyword-arg:
    Unexpected keyword argument 'translation_key' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L78
  204. unexpected-keyword-arg:
    Unexpected keyword argument 'entity_category' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L78
  205. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L87
  206. invalid-overridden-method:
    Method 'is_on' was expected to be 'method', found it instead as 'property'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L133
  207. invalid-overridden-method:
    Method 'extra_state_attributes' was expected to be 'method', found it instead as 'property'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L138
  208. magic-value-comparison:
    Consider using a named constant or an enum instead of ''plugwise_notification''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L140
  209. redefined-loop-name:
    Redefining 'msg_type' from loop (line 146)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L147
  210. consider-using-assignment-expr:
    Use 'if (msg_type := msg_type.lower()) not in SEVERITIES:' instead
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L148
  211. redefined-loop-name:
    Redefining 'msg_type' from loop (line 146)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/binary_sensor.py#L149
  212. unexpected-keyword-arg:
    Unexpected keyword argument 'translation_key' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/switch.py#L35
  213. unexpected-keyword-arg:
    Unexpected keyword argument 'entity_category' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/switch.py#L35
  214. unexpected-keyword-arg:
    Unexpected keyword argument 'translation_key' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/switch.py#L40
  215. unexpected-keyword-arg:
    Unexpected keyword argument 'entity_category' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/switch.py#L40
  216. unexpected-keyword-arg:
    Unexpected keyword argument 'translation_key' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/switch.py#L45
  217. unexpected-keyword-arg:
    Unexpected keyword argument 'device_class' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/switch.py#L45
  218. unexpected-keyword-arg:
    Unexpected keyword argument 'translation_key' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/switch.py#L50
  219. unexpected-keyword-arg:
    Unexpected keyword argument 'entity_category' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/switch.py#L50
  220. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/switch.py#L59
  221. abstract-method:
    Method 'turn_off' is abstract in class 'ToggleEntity' but is not overridden in child class 'PlugwiseSwitchEntity'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/switch.py#L84
  222. abstract-method:
    Method 'turn_on' is abstract in class 'ToggleEntity' but is not overridden in child class 'PlugwiseSwitchEntity'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/switch.py#L84
  223. invalid-overridden-method:
    Method 'is_on' was expected to be 'method', found it instead as 'property'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/switch.py#L101
  224. too-many-try-statements:
    try clause contains 3 statements, expected at most 1
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/coordinator.py#L71
  225. unexpected-keyword-arg:
    Unexpected keyword argument 'translation_key' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/number.py#L34
  226. unexpected-keyword-arg:
    Unexpected keyword argument 'device_class' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/number.py#L34
  227. unexpected-keyword-arg:
    Unexpected keyword argument 'entity_category' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/number.py#L34
  228. unexpected-keyword-arg:
    Unexpected keyword argument 'native_unit_of_measurement' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/number.py#L34
  229. unexpected-keyword-arg:
    Unexpected keyword argument 'translation_key' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/number.py#L41
  230. unexpected-keyword-arg:
    Unexpected keyword argument 'device_class' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/number.py#L41
  231. unexpected-keyword-arg:
    Unexpected keyword argument 'entity_category' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/number.py#L41
  232. unexpected-keyword-arg:
    Unexpected keyword argument 'native_unit_of_measurement' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/number.py#L41
  233. unexpected-keyword-arg:
    Unexpected keyword argument 'translation_key' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/number.py#L48
  234. unexpected-keyword-arg:
    Unexpected keyword argument 'device_class' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/number.py#L48
  235. unexpected-keyword-arg:
    Unexpected keyword argument 'entity_category' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/number.py#L48
  236. unexpected-keyword-arg:
    Unexpected keyword argument 'native_unit_of_measurement' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/number.py#L48
  237. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/number.py#L59
  238. abstract-method:
    Method 'set_native_value' is abstract in class 'NumberEntity' but is not overridden in child class 'PlugwiseNumberEntity'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/number.py#L83
  239. abstract-method:
    Method 'set_value' is abstract in class 'NumberEntity' but is not overridden in child class 'PlugwiseNumberEntity'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/number.py#L83
  240. magic-value-comparison:
    Consider using a named constant or an enum instead of ''temperature_offset''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/number.py#L104
  241. invalid-overridden-method:
    Method 'native_value' was expected to be 'method', found it instead as 'property'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/number.py#L109
  242. invalid-name:
    Variable name "_P" doesn't conform to snake_case naming style
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/util.py#L14
  243. unexpected-keyword-arg:
    Unexpected keyword argument 'translation_key' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/select.py#L30
  244. unexpected-keyword-arg:
    Unexpected keyword argument 'translation_key' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/select.py#L35
  245. unexpected-keyword-arg:
    Unexpected keyword argument 'entity_category' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/select.py#L35
  246. unexpected-keyword-arg:
    Unexpected keyword argument 'translation_key' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/select.py#L41
  247. unexpected-keyword-arg:
    Unexpected keyword argument 'entity_category' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/select.py#L41
  248. unexpected-keyword-arg:
    Unexpected keyword argument 'translation_key' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/select.py#L47
  249. unexpected-keyword-arg:
    Unexpected keyword argument 'entity_category' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/select.py#L47
  250. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/select.py#L57
  251. abstract-method:
    Method 'select_option' is abstract in class 'SelectEntity' but is not overridden in child class 'PlugwiseSelectEntity'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/select.py#L81
  252. invalid-overridden-method:
    Method 'current_option' was expected to be 'method', found it instead as 'property'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/select.py#L102
  253. invalid-overridden-method:
    Method 'options' was expected to be 'method', found it instead as 'property'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/select.py#L107
  254. magic-value-comparison:
    Consider using a named constant or an enum instead of ''Adam''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L44
  255. magic-value-comparison:
    Consider using a named constant or an enum instead of ''climate''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L48
  256. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L31
  257. abstract-method:
    Method 'set_fan_mode' is abstract in class 'ClimateEntity' but is not overridden in child class 'PlugwiseClimateEntity'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L62
  258. abstract-method:
    Method 'set_humidity' is abstract in class 'ClimateEntity' but is not overridden in child class 'PlugwiseClimateEntity'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L62
  259. abstract-method:
    Method 'set_hvac_mode' is abstract in class 'ClimateEntity' but is not overridden in child class 'PlugwiseClimateEntity'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L62
  260. abstract-method:
    Method 'set_preset_mode' is abstract in class 'ClimateEntity' but is not overridden in child class 'PlugwiseClimateEntity'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L62
  261. abstract-method:
    Method 'set_swing_horizontal_mode' is abstract in class 'ClimateEntity' but is not overridden in child class 'PlugwiseClimateEntity'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L62
  262. abstract-method:
    Method 'set_swing_mode' is abstract in class 'ClimateEntity' but is not overridden in child class 'PlugwiseClimateEntity'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L62
  263. abstract-method:
    Method 'set_temperature' is abstract in class 'ClimateEntity' but is not overridden in child class 'PlugwiseClimateEntity'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L62
  264. abstract-method:
    Method 'toggle' is abstract in class 'ClimateEntity' but is not overridden in child class 'PlugwiseClimateEntity'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L62
  265. abstract-method:
    Method 'turn_aux_heat_off' is abstract in class 'ClimateEntity' but is not overridden in child class 'PlugwiseClimateEntity'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L62
  266. abstract-method:
    Method 'turn_aux_heat_on' is abstract in class 'ClimateEntity' but is not overridden in child class 'PlugwiseClimateEntity'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L62
  267. abstract-method:
    Method 'turn_off' is abstract in class 'ClimateEntity' but is not overridden in child class 'PlugwiseClimateEntity'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L62
  268. abstract-method:
    Method 'turn_on' is abstract in class 'ClimateEntity' but is not overridden in child class 'PlugwiseClimateEntity'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L62
  269. too-many-instance-attributes:
    Too many instance attributes (11/7)
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L62
  270. magic-value-comparison:
    Consider using a named constant or an enum instead of ''Adam''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L91
  271. redefined-variable-type:
    Redefinition of self._attr_supported_features type from homeassistant.components.climate.const.ClimateEntityFeature.TARGET_TEMPERATURE to homeassistant.components.climate.const.ClimateEntityFeature.TARGET_TEMPERATURE_RANGE
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L92
  272. magic-value-comparison:
    Consider using a named constant or an enum instead of ''regulation_modes''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L117
  273. magic-value-comparison:
    Consider using a named constant or an enum instead of ''cooling''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L118
  274. consider-using-assignment-expr:
    Use 'if (mode := self._gateway_data['select_regulation_mode']) in ('cooling', 'heating'):' instead
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L121
  275. use-set-for-membership:
    Consider using set for membership test
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L121
  276. unused-argument:
    Unused argument 'coordinator'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L110
  277. invalid-overridden-method:
    Method 'current_temperature' was expected to be 'method', found it instead as 'property'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L125
  278. invalid-overridden-method:
    Method 'target_temperature' was expected to be 'method', found it instead as 'property'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L130
  279. invalid-overridden-method:
    Method 'target_temperature_high' was expected to be 'method', found it instead as 'property'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L139
  280. invalid-overridden-method:
    Method 'target_temperature_low' was expected to be 'method', found it instead as 'property'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L147
  281. invalid-overridden-method:
    Method 'hvac_mode' was expected to be 'method', found it instead as 'property'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L155
  282. invalid-overridden-method:
    Method 'hvac_modes' was expected to be 'method', found it instead as 'property'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L164
  283. magic-value-comparison:
    Consider using a named constant or an enum instead of ''regulation_modes''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L167
  284. magic-value-comparison:
    Consider using a named constant or an enum instead of ''available_schedules''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L170
  285. magic-value-comparison:
    Consider using a named constant or an enum instead of ''regulation_modes''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L174
  286. magic-value-comparison:
    Consider using a named constant or an enum instead of ''cooling''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L175
  287. magic-value-comparison:
    Consider using a named constant or an enum instead of ''heating''.
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L177
  288. invalid-overridden-method:
    Method 'hvac_action' was expected to be 'method', found it instead as 'property'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L187
  289. invalid-overridden-method:
    Method 'preset_mode' was expected to be 'method', found it instead as 'property'
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/climate.py#L207
  290. unexpected-keyword-arg:
    Unexpected keyword argument 'translation_key' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/sensor.py#L46
  291. unexpected-keyword-arg:
    Unexpected keyword argument 'native_unit_of_measurement' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/sensor.py#L46
  292. unexpected-keyword-arg:
    Unexpected keyword argument 'device_class' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/sensor.py#L46
  293. unexpected-keyword-arg:
    Unexpected keyword argument 'state_class' in constructor call
    https://github.com/home-assistant/core/blob/980b8a91e62c449fab558318573fa756818875a6/homeassistant/components/plugwise/sensor.py#L46
  294. unexpected-keyword-arg:
    *Unexpected keyword argum...

This comment was truncated because GitHub allows only 65536 characters in a comment.

This comment was generated for commit 276c363

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.

LGTM ! Don't worry about the 3.13 CI fail, this is on main too we can rebase once it's fixed. I'll also wait for a review from Andrea before merging.

@Julfried
Copy link
Contributor Author

Thanks! Appreciate your review and the clarification about the CI issue. I`ll keep an eye on any updates and am happy to rebase if needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement ✨ Improvement to a component pyreverse Related to pyreverse component
Projects
None yet
Development

Successfully merging this pull request may close these issues.

set depth in pyreverse
2 participants