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 20 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 96.42857% with 1 line in your changes missing coverage. Please review.

Project coverage is 95.84%. Comparing base (054f233) to head (94a3898).
Report is 10 commits behind head on main.

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

Impacted file tree graph

@@            Coverage Diff             @@
##             main   #10077      +/-   ##
==========================================
+ Coverage   95.80%   95.84%   +0.03%     
==========================================
  Files         174      175       +1     
  Lines       18976    19056      +80     
==========================================
+ Hits        18180    18264      +84     
+ Misses        796      792       -4     
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 99.15% <96.29%> (-0.85%) ⬇️

... and 7 files with indirect coverage changes

@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!

This comment has been minimized.

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.

This comment has been minimized.

@Pierre-Sassoulas
Copy link
Member

Thank you for rebasing, the mypy error is coming from main the other errors seems genuine. (Spelling is checked only in ci not in local pre-commit)

@Julfried
Copy link
Contributor Author

Thanks for pointing out the mypy error, I`ll keep an eye on it if it gets fixed in main. How about disabling spelling check for these test cases because "-" is not allowed in Python naming anyway?

This comment has been minimized.

@Julfried
Copy link
Contributor Author

It seems that the spelling checks still fail, because it checks for words and ignores the quotes. How about adding these testnames to .pylintrc spelling dictionary?

[SPELLING]
# List of comma separated words that should not be checked.
spelling-ignore-words=subpkg,MyClass

This comment has been minimized.

@Julfried
Copy link
Contributor Author

When working on test coverage I noticed tests/data/init.py is empty, which impacts pyreverse's ability to detect complete package relationships. This effects validation of the --max-depth functionality since module relationships aren't fully established and the resulting diagrams do not represent the whole structure.

@Pierre-Sassoulas do you maybe remember if this was an intentional design choice, or did this just grow over time?

Note: Addressing this would require modifying all affected test files to properly reflect package relationships. Given the scope, I think handling such changes in a separate PR would be better, if we decide to do this!

@Pierre-Sassoulas
Copy link
Member

I'm not sure. Pylint had a lot of issues with namespace package and missing __init__.py in the past, is it the issue ? If you meant 'empty' and not 'missing' I'm not sure that an empty init.py should influence the result ?

@Julfried
Copy link
Contributor Author

Thanks for checking! You're right that it's about an empty (not missing) init.py. The difference is how many relationships pyreverse detects:

  • Empty init.py: Shows only direct module dependencies empty init file
  • init.py with imports: Shows both module dependencies and package-level relationships imports in init file

I think this effects depth filtering coverage since we're not testing package-level relationship filtering. Although I want to add, that I am not a testing expert.

Here is what I added to init.py:

from .clientmodule_test import Ancestor, Specialization
from .suppliermodule_test import Interface, DoNothing, DoNothing2
from .nullable_pattern import NullablePatterns
from .property_pattern import PropertyPatterns

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

@Julfried
Copy link
Contributor Author

Julfried commented Jan 5, 2025

Thanks for your earlier guidance, Pierre! I hope this is PR is not getting to large.

I now rebased to fix the mypy error and addressed the spelling issues. Also, I made some mistakes when setting up the tests, which resulted in pyreverse generating wrong diagrams. Now I use a proper test setup with fixtures and test multiple depths, to improve test coverage. The issue with pyreverse not properly detecting all relationships when init.py is empty still remains. I believe this is why coverage for package-level relationships is still incomplete.

In my understanding, an empty init.py file limits the ability to fully establish package-level relationships, as it doesn’t define imports or explicitly link modules in the package. This might explain why pyreverse struggles with package-level filtering in such cases. However, I’m not entirely sure if this is the root cause or if there’s another factor at play.

I’m happy to explore this further and improve the tests in a follow-up PR if needed. Let me know what you thinkπŸ™‚

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.

Sorry for the delay. Changes seems sensible, I have a possible refactor to suggest. (I'd like a review from Andras if possible though, no pressure @DudeNr33 ;) )

@@ -129,6 +179,12 @@ def write_classes(self, diagram: ClassDiagram) -> None:
)
# inheritance links
for rel in diagram.get_relationships("specialization"):
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
for rel in diagram.get_relationships("specialization"):
for rel in diagram.get_relationships("specialization", depth=self.max_depth):

Wonder if it's possible of filtering on depth directly in get_relationships instead. Seems like it could reduce duplication of .should_show_node checks when looping on it

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks for the suggestion! I would agree, that handling everything regarding filtering in one place would benefit maintainability. However I think we still need node filtering when emitting nodes, to determine which ones to show in the final diagram. Not sure about splitting this up into 2 files either. What do you think?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Actually, I feel like we could simplify this, by introducing get_nodes() alongside get_relationships(). Then the writer would look something like this.

def write_packages(self, diagram: PackageDiagram) -> None:
    for module in diagram.get_nodes(depth=self.max_depth):
        # Emit node logic
    for rel in diagram.get_relationships(depth=self.max_depth):
        # Emit edge logic

That way all the filtering logic would be handled consistently inside the diagram classes and the printer would only need to focus on rendering the final components. What do you think?

Copy link
Member

Choose a reason for hiding this comment

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

Looks great !

Copy link
Contributor Author

@Julfried Julfried Jan 17, 2025

Choose a reason for hiding this comment

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

Since this is a big change, I am not sure how to approach this. Are you ok with changing it in this PR?

Copy link
Member

Choose a reason for hiding this comment

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

Right, let's open another PR for the refactor required to add the depth argument.

@Julfried
Copy link
Contributor Author

No worries, Currently I am also very packed. Will try to take a look at it later this week :)

Copy link
Collaborator

@DudeNr33 DudeNr33 left a comment

Choose a reason for hiding this comment

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

Sorry for the delay, I am not very active on GitHub at the moment.

Thank you for the PR - this is actually a feature I saw in a similar tool and always thought "would be really helpful to have this in pyreverse"!

Regarding the changes (and following the discussion you already had with Pierre), I feel like the logic is better suited in diadefslib.py, and could be handled similarly to --show_associated.
But like Pierre I think handling this in a follow-up PR makes sense, so that this one does not get too big.

Besides that I only have on remark regarding the option group. πŸ‘

pylint/pyreverse/main.py Outdated Show resolved Hide resolved
@Julfried
Copy link
Contributor Author

Thanks, appreciate your review. Both of your suggestions make sense - especially the architectural one about moving depth filtering to diadefslib.py alongside other filters like --show_associated. I've moved the --max-depth option to the Filtering and Scope group to better align with similar options. I am happy to do a refactor in a follow up PR :)

Copy link
Contributor

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

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

  1. locally-disabled:
    Locally disabling broad-exception-caught (W0718)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L717
  2. empty-comment:
    Line with empty comment
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L723
  3. empty-comment:
    Line with empty comment
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L727
  4. empty-comment:
    Line with empty comment
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L730
  5. line-too-long:
    Line too long (108/100)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2426
  6. too-many-lines:
    Too many lines in module (3332/1000)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1
  7. too-complex:
    '__async_setup_with_context' is too complex. The McCabe rating is 23
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L552
  8. too-complex:
    'async_unload' is too complex. The McCabe rating is 17
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L796
  9. too-complex:
    'async_migrate' is too complex. The McCabe rating is 11
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L942
  10. too-complex:
    'async_finish_flow' is too complex. The McCabe rating is 15
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1366
  11. too-complex:
    'async_update_issues' is too complex. The McCabe rating is 11
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2447
  12. too-few-public-methods:
    Too few public methods (0/2)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L295
  13. too-many-arguments:
    Too many arguments (17/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L350
  14. too-many-locals:
    Too many local variables (18/15)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L350
  15. too-many-locals:
    Too many local variables (17/15)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L552
  16. too-many-try-statements:
    try clause contains 5 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L633
  17. too-many-branches:
    Too many branches (22/12)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L552
  18. too-many-statements:
    Too many statements (84/50)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L552
  19. consider-using-assignment-expr:
    Use 'if not (supports_unload := hasattr(component, 'async_unload_entry')):' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L841
  20. broad-exception-caught:
    Catching too general exception Exception
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L861
  21. too-many-try-statements:
    try clause contains 7 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L848
  22. too-many-return-statements:
    Too many return statements (8/6)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L796
  23. too-many-branches:
    Too many branches (14/12)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L796
  24. broad-exception-caught:
    Catching too general exception Exception
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L904
  25. too-many-arguments:
    Too many arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L914
  26. too-many-positional-arguments:
    Too many positional arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L914
  27. while-used:
    Used while loop
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L955
  28. consider-using-assignment-expr:
    Use 'if not (supports_migrate := hasattr(component, 'async_migrate_entry')):' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L966
  29. broad-exception-caught:
    Catching too general exception Exception
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L985
  30. too-many-try-statements:
    try clause contains 6 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L976
  31. protected-access:
    Access to a protected member _async_schedule_save of a client class
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L984
  32. too-many-return-statements:
    Too many return statements (7/6)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L942
  33. while-used:
    Used while loop
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1032
  34. 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/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1245
  35. magic-value-comparison:
    Consider using a named constant or an enum instead of ''source''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1258
  36. magic-value-comparison:
    Consider using a named constant or an enum instead of ''entry_id''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1265
  37. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1303
  38. 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/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1335
  39. protected-access:
    Access to a protected member _async_remove of a client class
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1508
  40. protected-access:
    Access to a protected member _async_clean_up of a client class
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1514
  41. too-many-branches:
    Too many branches (14/12)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1366
  42. magic-value-comparison:
    Consider using a named constant or an enum instead of ''source''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1533
  43. 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/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1592
  44. 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/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1602
  45. 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/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1731
  46. magic-value-comparison:
    Consider using a named constant or an enum instead of '2'.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1757
  47. magic-value-comparison:
    Consider using a named constant or an enum instead of ''system_options''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1763
  48. magic-value-comparison:
    Consider using a named constant or an enum instead of '3'.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1779
  49. magic-value-comparison:
    Consider using a named constant or an enum instead of '4'.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1785
  50. 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/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1853
  51. consider-ternary-expression:
    Consider rewriting as a ternary expression
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1932
  52. magic-value-comparison:
    Consider using a named constant or an enum instead of ''flow_id''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1962
  53. unused-argument:
    Unused argument 'event'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1970
  54. too-many-arguments:
    Too many arguments (11/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2147
  55. too-many-locals:
    Too many local variables (17/15)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2147
  56. magic-value-comparison:
    Consider using a named constant or an enum instead of ''flipr''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2184
  57. protected-access:
    Access to a protected member _domain_unique_id_index of a client class
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2461
  58. magic-value-comparison:
    Consider using a named constant or an enum instead of ''flipr''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2466
  59. redefined-loop-name:
    Redefining 'entries' from loop (line 2468)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2471
  60. magic-value-comparison:
    Consider using a named constant or an enum instead of '2'.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2480
  61. too-many-public-methods:
    Too many public methods (23/20)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L1795
  62. unused-argument:
    Unused argument 'config_entry'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2578
  63. unused-argument:
    Unused argument 'user_input'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2761
  64. unused-argument:
    Unused argument 'discovery_info'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2801
  65. unused-argument:
    Unused argument 'discovery_info'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2830
  66. unused-argument:
    Unused argument 'discovery_info'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2836
  67. unused-argument:
    Unused argument 'discovery_info'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2842
  68. unused-argument:
    Unused argument 'discovery_info'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2848
  69. unused-argument:
    Unused argument 'discovery_info'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2854
  70. unused-argument:
    Unused argument 'discovery_info'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2860
  71. unused-argument:
    Unused argument 'discovery_info'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2866
  72. unused-argument:
    Unused argument 'discovery_info'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2871
  73. unused-argument:
    Unused argument 'discovery_info'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2876
  74. too-many-arguments:
    Too many arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2882
  75. too-many-arguments:
    Too many arguments (9/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2914
  76. missing-param-doc:
    "entry" missing in parameter documentation
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2914
  77. too-many-arguments:
    Too many arguments (7/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2961
  78. magic-value-comparison:
    Consider using a named constant or an enum instead of ''entry_id''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2975
  79. too-many-public-methods:
    Too many public methods (21/20)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L2553
  80. too-few-public-methods:
    Too few public methods (1/2)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L3178
  81. magic-value-comparison:
    Consider using a named constant or an enum instead of ''update''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L3268
  82. magic-value-comparison:
    Consider using a named constant or an enum instead of ''disabled_by''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L3269
  83. suppressed-message:
    Suppressed 'broad-exception-caught' (from line 717)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/config_entries.py#L717
  84. too-many-instance-attributes:
    Too many instance attributes (8/7)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/auth/providers/__init__.py#L195
  85. consider-using-assignment-expr:
    Use 'if (auth_module := self._auth_manager.get_auth_mfa_module(self._auth_module_id)) is None:' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/auth/providers/__init__.py#L259
  86. consider-using-assignment-expr:
    Use 'if not (result := await auth_module.async_validate(self.user.id, user_input)):' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/auth/providers/__init__.py#L279
  87. unused-argument:
    Unused argument 'value'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/util/event_type.pyi#L21
  88. consider-using-assignment-expr:
    Use 'if (entity_comp := hass.data.get(DATA_INSTANCES, {}).get(domain)) is None:' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_component.py#L48
  89. too-many-instance-attributes:
    Too many instance attributes (9/7)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_component.py#L63
  90. consider-using-assignment-expr:
    Use 'if (key := config_entry.entry_id) in self._platforms:' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_component.py#L181
  91. too-many-arguments:
    Too many arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_component.py#L219
  92. too-many-positional-arguments:
    Too many positional arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_component.py#L219
  93. too-many-arguments:
    Too many arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_component.py#L256
  94. too-many-positional-arguments:
    Too many positional arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_component.py#L256
  95. consider-using-assignment-expr:
    Use 'if (key := (platform_type, scan_interval, entity_namespace)) not in self._platforms:' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_component.py#L302
  96. unused-argument:
    Unused argument 'event'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_component.py#L392
  97. locally-disabled:
    Locally disabling import-outside-toplevel (C0415)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L1539
  98. too-many-lines:
    Too many lines in module (1695/1000)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L1
  99. too-complex:
    'async_device_modified' is too complex. The McCabe rating is 12
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L970
  100. too-complex:
    '_async_update_entity' is too complex. The McCabe rating is 12
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L1037
  101. too-many-arguments:
    Too many arguments (10/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L646
  102. while-used:
    Used while loop
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L804
  103. too-many-arguments:
    Too many arguments (20/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L814
  104. too-many-locals:
    Too many local variables (28/15)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L814
  105. consider-using-assignment-expr:
    Use 'if (entity_id := self.async_get_entity_id(domain, platform, unique_id)):' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L852
  106. magic-value-comparison:
    Consider using a named constant or an enum instead of ''remove''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L981
  107. magic-value-comparison:
    Consider using a named constant or an enum instead of ''update''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L989
  108. consider-using-assignment-expr:
    Use 'if not (device := device_registry.async_get(event.data['device_id'])):' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L998
  109. too-many-arguments:
    Too many arguments (26/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L1037
  110. too-many-locals:
    Too many local variables (34/15)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L1037
  111. too-many-arguments:
    Too many arguments (24/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L1166
  112. too-many-locals:
    Too many local variables (24/15)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L1166
  113. too-many-arguments:
    Too many arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L1221
  114. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L1282
  115. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L1344
  116. magic-value-comparison:
    Consider using a named constant or an enum instead of ''remove''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L1547
  117. unused-argument:
    Unused argument 'event'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L1585
  118. magic-value-comparison:
    Consider using a named constant or an enum instead of ''remove''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L1599
  119. suppressed-message:
    Suppressed 'import-outside-toplevel' (from line 1539)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/entity_registry.py#L1539
  120. locally-disabled:
    Locally disabling import-outside-toplevel (C0415)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L170
  121. too-complex:
    '_selector_serializer' is too complex. The McCabe rating is 33
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L512
  122. too-complex:
    '_get_cached_script_parameters' is too complex. The McCabe rating is 16
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L620
  123. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L66
  124. too-few-public-methods:
    Too few public methods (1/2)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L204
  125. consider-using-assignment-expr:
    Use 'if (device := device_reg.async_get(llm_context.device_id)):' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L345
  126. possibly-used-before-assignment:
    Possibly using variable 'extra' before assignment
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L355
  127. consider-using-augmented-assign:
    Use '|=' to do an augmented assign directly
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L386
  128. too-few-public-methods:
    Too few public methods (1/2)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L276
  129. too-many-locals:
    Too many local variables (16/15)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L431
  130. magic-value-comparison:
    Consider using a named constant or an enum instead of ''min''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L541
  131. magic-value-comparison:
    Consider using a named constant or an enum instead of ''min_mireds''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L543
  132. magic-value-comparison:
    Consider using a named constant or an enum instead of ''max''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L545
  133. magic-value-comparison:
    Consider using a named constant or an enum instead of ''max_mireds''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L547
  134. magic-value-comparison:
    Consider using a named constant or an enum instead of ''min''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L581
  135. magic-value-comparison:
    Consider using a named constant or an enum instead of ''max''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L583
  136. too-many-return-statements:
    Too many return statements (27/6)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L512
  137. too-many-branches:
    Too many branches (32/12)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L512
  138. too-many-locals:
    Too many local variables (18/15)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L620
  139. consider-using-assignment-expr:
    Use 'if (parameters_cache := hass.data.get(SCRIPT_PARAMETERS_CACHE)) is None:' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L632
  140. unused-argument:
    Unused argument 'event'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L647
  141. consider-using-assignment-expr:
    Use 'if not (field_description := config.get('description')):' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L667
  142. consider-ternary-expression:
    Consider rewriting as a ternary expression
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L670
  143. magic-value-comparison:
    Consider using a named constant or an enum instead of ''selector''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L674
  144. too-many-branches:
    Too many branches (15/12)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L620
  145. too-few-public-methods:
    Too few public methods (1/2)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L697
  146. suppressed-message:
    Suppressed 'import-outside-toplevel' (from line 170)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/llm.py#L171
  147. too-many-lines:
    Too many lines in module (1169/1000)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/condition.py#L1
  148. unused-argument:
    Unused argument 'variables'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/condition.py#L901
  149. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/condition.py#L975
  150. unused-argument:
    Unused argument 'variables'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/condition.py#L967
  151. magic-value-comparison:
    Consider using a named constant or an enum instead of ''trigger''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/condition.py#L1012
  152. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/condition.py#L1008
  153. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/condition.py#L1002
  154. consider-using-assignment-expr:
    Use 'if (condition := config[CONF_CONDITION]) in ('and', 'not', 'or'):' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/condition.py#L1048
  155. use-set-for-membership:
    Consider using set for membership test
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/condition.py#L1048
  156. redefined-loop-name:
    Redefining 'sub_cond' from loop (line 1050)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/condition.py#L1051
  157. use-set-for-membership:
    Consider using set for membership test
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/condition.py#L1059
  158. too-many-try-statements:
    try clause contains 3 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/condition.py#L1094
  159. while-used:
    Used while loop
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/condition.py#L1124
  160. consider-using-assignment-expr:
    Use 'if (condition := config[CONF_CONDITION]) in ('and', 'not', 'or'):' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/condition.py#L1131
  161. use-set-for-membership:
    Consider using set for membership test
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/condition.py#L1131
  162. while-used:
    Used while loop
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/condition.py#L1152
  163. use-set-for-membership:
    Consider using set for membership test
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/condition.py#L1159
  164. magic-value-comparison:
    Consider using a named constant or an enum instead of ''device''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/condition.py#L1163
  165. while-used:
    Used while loop
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/collection.py#L104
  166. consider-using-assignment-expr:
    Use 'if (item_id := item[CONF_ID]) in old_ids:' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/collection.py#L209
  167. no-self-use:
    Method could be a function
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/collection.py#L388
  168. too-many-arguments:
    Too many arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/collection.py#L523
  169. too-many-positional-arguments:
    Too many positional arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/collection.py#L523
  170. too-many-arguments:
    Too many arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/collection.py#L541
  171. too-many-positional-arguments:
    Too many positional arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/collection.py#L541
  172. magic-value-comparison:
    Consider using a named constant or an enum instead of ''/''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/collection.py#L559
  173. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/collection.py#L632
  174. too-many-try-statements:
    try clause contains 5 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/collection.py#L641
  175. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/collection.py#L638
  176. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/collection.py#L658
  177. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/collection.py#L715
  178. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/collection.py#L707
  179. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/collection.py#L734
  180. locally-disabled:
    Locally disabling broad-exception-caught (W0718)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/update_coordinator.py#L328
  181. locally-disabled:
    Locally disabling possibly-used-before-assignment (E0606)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/update_coordinator.py#L456
  182. too-complex:
    '_async_refresh' is too complex. The McCabe rating is 31
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/update_coordinator.py#L351
  183. too-few-public-methods:
    Too few public methods (1/2)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/update_coordinator.py#L45
  184. too-many-instance-attributes:
    Too many instance attributes (20/7)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/update_coordinator.py#L55
  185. too-many-arguments:
    Too many arguments (10/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/update_coordinator.py#L63
  186. overlapping-except:
    Overlapping exceptions (requests.exceptions.RequestException is an ancestor class of requests.exceptions.Timeout)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/update_coordinator.py#L313
  187. broad-exception-caught:
    Catching too general exception Exception
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/update_coordinator.py#L441
  188. magic-value-comparison:
    Consider using a named constant or an enum instead of ''timed out''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/update_coordinator.py#L393
  189. too-many-branches:
    Too many branches (34/12)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/update_coordinator.py#L351
  190. too-many-statements:
    Too many statements (84/50)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/update_coordinator.py#L351
  191. redefined-variable-type:
    Redefinition of self.last_exception type from requests.exceptions.RequestException to urllib.error.URLError
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/update_coordinator.py#L390
  192. invalid-overridden-method:
    Method 'available' was expected to be 'method', found it instead as 'property'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/update_coordinator.py#L581
  193. useless-suppression:
    Useless suppression of 'possibly-used-before-assignment'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/update_coordinator.py#L456
  194. suppressed-message:
    Suppressed 'broad-exception-caught' (from line 328)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/update_coordinator.py#L328
  195. too-many-lines:
    Too many lines in module (2111/1000)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1
  196. too-complex:
    '_async_repeat_step' is too complex. The McCabe rating is 37
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L865
  197. too-complex:
    '_find_referenced_target' is too complex. The McCabe rating is 12
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1552
  198. too-complex:
    '_find_referenced_devices' is too complex. The McCabe rating is 16
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1601
  199. too-complex:
    '_find_referenced_entities' is too complex. The McCabe rating is 16
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1651
  200. too-complex:
    'async_run' is too complex. The McCabe rating is 20
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1702
  201. magic-value-comparison:
    Consider using a named constant or an enum instead of ''trigger''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L759
  202. use-set-for-membership:
    Consider using set for membership test
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L760
  203. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L823
  204. consider-using-assignment-expr:
    Use 'if (trace_element := trace_stack_top(trace_stack_cv)):' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L825
  205. too-many-try-statements:
    try clause contains 5 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L850
  206. protected-access:
    Access to a protected member _get_repeat_script of a client class
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L882
  207. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L945
  208. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L993
  209. use-set-for-membership:
    Consider using set for membership test
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L996
  210. too-many-branches:
    Too many branches (29/12)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L865
  211. too-many-statements:
    Too many statements (88/50)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L865
  212. protected-access:
    Access to a protected member _async_get_choose_data of a client class
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1038
  213. too-many-try-statements:
    try clause contains 5 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1043
  214. protected-access:
    Access to a protected member _async_get_if_data of a client class
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1059
  215. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1062
  216. use-implicit-booleaness-not-comparison-to-zero:
    "timeout == 0" can be simplified to "not timeout", if it is strictly an int, as 0 is falsey
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1141
  217. unused-argument:
    Unused argument 'context'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1153
  218. too-many-try-statements:
    try clause contains 3 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1194
  219. consider-using-assignment-expr:
    Use 'if (resp := self._action[CONF_SET_CONVERSATION_RESPONSE]) is None:' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1215
  220. protected-access:
    Access to a protected member _async_get_sequence_script of a client class
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1248
  221. protected-access:
    Access to a protected member _async_get_parallel_scripts of a client class
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1254
  222. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1290
  223. protected-access:
    Access to a protected member _queue_lck of a client class
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1292
  224. protected-access:
    Access to a protected member _queue_lck of a client class
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1304
  225. unused-argument:
    Unused argument 'point_in_time'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1318
  226. unused-argument:
    Unused argument 'event'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1336
  227. too-many-instance-attributes:
    Too many instance attributes (28/7)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1397
  228. too-many-arguments:
    Too many arguments (15/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1400
  229. too-many-locals:
    Too many local variables (16/15)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1400
  230. 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/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1579
  231. 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/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1584
  232. 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/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1629
  233. 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/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1636
  234. too-many-branches:
    Too many branches (15/12)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1601
  235. 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/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1680
  236. 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/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1687
  237. too-many-branches:
    Too many branches (15/12)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1651
  238. magic-value-comparison:
    Consider using a named constant or an enum instead of ''SILENT''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1723
  239. magic-value-comparison:
    Consider using a named constant or an enum instead of ''SILENT''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1728
  240. consider-ternary-expression:
    Consider rewriting as a ternary expression
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1785
  241. too-many-branches:
    Too many branches (20/12)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1702
  242. too-many-statements:
    Too many statements (55/50)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1702
  243. redefined-loop-name:
    Redefining 'parallel_script' from loop (line 1974)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/script.py#L1976
  244. unused-argument:
    Unused argument 'async_'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/singleton.py#L35
  245. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/singleton.py#L94
  246. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/singleton.py#L98
  247. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/singleton.py#L106
  248. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/singleton.py#L113
  249. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/singleton.py#L117
  250. superfluous-parens:
    Unnecessary parens after ':=' keyword
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/event.py#L1517
  251. too-many-lines:
    Too many lines in module (2007/1000)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/event.py#L1
  252. too-complex:
    '_refresh' is too complex. The McCabe rating is 11
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/event.py#L1219
  253. too-many-instance-attributes:
    Too many instance attributes (9/7)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/event.py#L974
  254. unused-argument:
    Unused argument 'now'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/event.py#L1102
  255. too-many-arguments:
    Too many arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/event.py#L1336
  256. too-many-positional-arguments:
    Too many positional arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/event.py#L1336
  257. unused-argument:
    Unused argument 'now'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/event.py#L1417
  258. consider-ternary-expression:
    Consider rewriting as a ternary expression
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/event.py#L1436
  259. too-many-instance-attributes:
    Too many instance attributes (8/7)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/event.py#L1615
  260. too-many-instance-attributes:
    Too many instance attributes (8/7)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/event.py#L1791
  261. too-many-arguments:
    Too many arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/event.py#L1848
  262. too-many-positional-arguments:
    Too many positional arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/event.py#L1848
  263. magic-value-comparison:
    Consider using a named constant or an enum instead of ''''.*
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/event.py#L1862
  264. consider-using-any-or-all:
    for loop could be any(render_info.all_states or render_info.all_states_lifecycle for render_info in render_infos)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/event.py#L1948
  265. locally-disabled:
    Locally disabling too-many-nested-blocks (R1702)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2192
  266. too-many-lines:
    Too many lines in module (3232/1000)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L1
  267. too-complex:
    'merge_response' is too complex. The McCabe rating is 12
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2170
  268. consider-using-assignment-expr:
    Use 'if (attr := state_obj.attributes.get(name, _SENTINEL)) is _SENTINEL:' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L1885
  269. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L1907
  270. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L1915
  271. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L1934
  272. magic-value-comparison:
    Consider using a named constant or an enum instead of ''ceil''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L1937
  273. magic-value-comparison:
    Consider using a named constant or an enum instead of ''floor''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L1939
  274. magic-value-comparison:
    Consider using a named constant or an enum instead of ''half''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L1941
  275. use-implicit-booleaness-not-comparison-to-zero:
    "precision == 0" can be simplified to "not precision", if it is strictly an int, as 0 is falsey
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L1946
  276. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L1984
  277. too-many-try-statements:
    try clause contains 5 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2059
  278. magic-value-comparison:
    Consider using a named constant or an enum instead of '2'.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2061
  279. magic-value-comparison:
    Consider using a named constant or an enum instead of '3'.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2065
  280. too-many-try-statements:
    try clause contains 4 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2093
  281. unidiomatic-typecheck:
    Use isinstance() rather than type() for a typecheck.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2142
  282. unidiomatic-typecheck:
    Use isinstance() rather than type() for a typecheck.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2145
  283. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2147
  284. use-implicit-booleaness-not-comparison-to-zero:
    "len(args) == 0" can be simplified to "not len(args)", if it is strictly an int, as 0 is falsey
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2253
  285. use-implicit-booleaness-not-comparison-to-zero:
    "len(args) == 0" can be simplified to "not len(args)", if it is strictly an int, as 0 is falsey
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2274
  286. 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/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2283
  287. use-implicit-booleaness-not-comparison-to-zero:
    "len(args) == 0" can be simplified to "not len(args)", if it is strictly an int, as 0 is falsey
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2303
  288. 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/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2312
  289. 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/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2343
  290. consider-using-assignment-expr:
    Use 'if (result := jinja2.filters.do_int(value, default=default, base=base)) is _SENTINEL:' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2379
  291. consider-using-assignment-expr:
    Use 'if (result := jinja2.filters.do_int(value, default=default, base=base)) is _SENTINEL:' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2387
  292. unused-argument:
    Unused argument 'context'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2597
  293. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2606
  294. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2623
  295. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2650
  296. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2672
  297. no-self-use:
    Method could be a function
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2727
  298. unused-argument:
    Unused argument 'hass'
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2827
  299. invalid-name:
    Variable name "_P" doesn't conform to snake_case naming style
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2981
  300. too-many-statements:
    Too many statements (185/50)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2862
  301. magic-value-comparison:
    Consider using a named constant or an enum instead of ''_''.
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L3174
  302. too-many-arguments:
    Too many arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L3182
  303. too-many-positional-arguments:
    Too many positional arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L3182
  304. too-many-arguments:
    Too many arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L3192
  305. too-many-positional-arguments:
    Too many positional arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L3192
  306. too-many-arguments:
    Too many arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L3201
  307. too-many-positional-arguments:
    Too many positional arguments (6/5)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L3201
  308. suppressed-message:
    Suppressed 'too-many-nested-blocks' (from line 2192)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/helpers/template.py#L2192
  309. locally-disabled:
    Locally disabling unnecessary-lambda (W0108)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/components/assist_pipeline/websocket_api.py#L69
  310. locally-disabled:
    Locally disabling unnecessary-lambda (W0108)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/components/assist_pipeline/websocket_api.py#L71
  311. too-complex:
    'websocket_run' is too complex. The McCabe rating is 16
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/components/assist_pipeline/websocket_api.py#L122
  312. too-many-locals:
    Too many local variables (22/15)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/components/assist_pipeline/websocket_api.py#L122
  313. while-used:
    Used while loop
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/components/assist_pipeline/websocket_api.py#L172
  314. too-many-try-statements:
    try clause contains 2 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/components/assist_pipeline/websocket_api.py#L254
  315. too-many-statements:
    Too many statements (54/50)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/components/assist_pipeline/websocket_api.py#L122
  316. consider-using-assignment-expr:
    Use 'if (pipeline_id := msg['pipeline_id']) not in pipeline_data.pipeline_debug:' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/components/assist_pipeline/websocket_api.py#L288
  317. too-many-try-statements:
    try clause contains 8 statements, expected at most 1
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/components/assist_pipeline/websocket_api.py#L506
  318. while-used:
    Used while loop
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/components/assist_pipeline/websocket_api.py#L509
  319. consider-using-assignment-expr:
    Use 'if (audio_bytes := await audio_queue.queue.get()) is None:' instead
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce44596074d7b2a712/homeassistant/components/assist_pipeline/websocket_api.py#L512
  320. suppressed-message:
    Suppressed 'unnecessary-lambda' (from line 69)
    https://github.com/home-assistant/core/blob/439f22f5844e49ce1f89dbce...

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

This comment was generated for commit 94a3898

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
3 participants