Remove IntegrationMatcher as its now a slotted class and cannot
be examined with the current methods (we also likely do not need
to optimize it anymore)
```
File "/usr/src/homeassistant/homeassistant/components/profiler/__init__.py", line 201, in _lru_stats
for maybe_lru in class_with_lru_attr.__dict__.values():
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'IntegrationMatcher' object has no attribute '__dict__'. Did you mean: '__dir__'?
```
* Subscribe to Traccar Server events
* No need to unsubscribe on error
* typo
* rename _attrs
* arg type
* reorder return type
* more spesific
* Update stale docstring
* Bump pysnmp-lextudio to version 6.0.2
* Update gen_requirements_all.py
---------
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
* Avoid circular import in Storage.async_delay_save
We call Storage.async_delay_save for every entity being added or removed
from the registry. The late import took more time than everything else
in the function.
* Avoid reschedule churn in Storage.async_delay_save
When we are adding or removing entities we will call async_delay_save
quite often which has to add and remove a TimerHandle on the event loop
which can add up when there are a lot of registry items changing.
If the timer handle still has 80% of the time remaining on it
we will avoid resceduling and let it fire at the time the
original async_delay_save call was made. This ensures we
do not force the event loop to rebuild its heapq because
too many timer handlers were cancelled at once
* div0
* add coverage for 0 since we had none
* fix bad conflict
* tweaks
* tweaks
* tweaks
* tweaks
* tweaks
* tweaks
* more test fixes
* mqtt tests rely on event loop overhead
* Convert debouncer async_shutdown to be a normal function
nothing was being awaited here and the shutdown call was only used
in integrations marked internal and other internals. Its possible
that a custom component might have been using the method but it
seemed uncommon enough that it did not warrent marking as a breaking
change. The update coordinator is no longer awaiting anything in
async_shutdown either now but it seemed likely that this use
would get subclassed.
* fix
* Update hpilo version in requirements_all.txt (#109581)
The issue with the deprecated and now removed ssl.wrap_socket function was fixed years ago in the library
* Update hpilo version in manifest.json (#109581)
Avoid linear search to remove from entity registry index
Because the entity registry index needs to preserve insertion order
for backwards compat, a list was used for the index. Because some
config entries/devices/areas have a large amount of entities, removing
the entities, the O(n) time complexity of removing from a list can
slow down reloads. As python has no orderedset in stdlib, use
a dict since it preserves insertion order has O(1) add/remove
time complexity for the average case
* Refactor keyed event trackers to avoid refactoring risk
Follow to https://github.com/home-assistant/core/pull/110978#discussion_r1496771106
I had to do some type ignores because of the EventType vs Event
which is hopefully not going to be needed after the next mypy
* delete constants only used one in other const
* no field
* fixes
* less refactoring later
* less refactoring later
* keep const
* Make adding entities in storage collection a normal function
Nothing is awaited when adding
* cleanup
* cleanup
* cleanup
* cleanup
* reduce
* reduce
* reduce
* reduce
* tweak