eifinger / hass-weenect

Homeassistant integration for weenect
MIT License
10 stars 2 forks source link

HA complains about blocking call to listdir #376

Closed andreasbrett closed 1 month ago

andreasbrett commented 1 month ago

Version of the custom_component

5.1.1 (latest)

Describe the bug

HA logs report blocking calls to listdir.

Debug log


2024-08-03 14:31:30.904 WARNING (MainThread) [homeassistant.util.loop] Detected blocking call to listdir with args ('/config/deps/lib/python3.12/site-packages',) inside the event loop by custom integration 'weenect' at custom_components/weenect/__init__.py, line 44: client = AioWeenect(username=username, password=password, session=session) (offender: /usr/local/lib/python3.12/importlib/metadata/__init__.py, line 680: return os.listdir(self.root or '.')), please create a bug report at https://github.com/eifinger/hass-weenect/issues
For developers, please see https://developers.home-assistant.io/docs/asyncio_blocking_operations/#listdir
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/src/homeassistant/homeassistant/__main__.py", line 223, in <module>
    sys.exit(main())
  File "/usr/src/homeassistant/homeassistant/__main__.py", line 209, in main
    exit_code = runner.run(runtime_conf)
  File "/usr/src/homeassistant/homeassistant/runner.py", line 190, in run
    return loop.run_until_complete(setup_and_run_hass(runtime_config))
  File "/usr/local/lib/python3.12/asyncio/base_events.py", line 674, in run_until_complete
    self.run_forever()
  File "/usr/local/lib/python3.12/asyncio/base_events.py", line 641, in run_forever
    self._run_once()
  File "/usr/local/lib/python3.12/asyncio/base_events.py", line 1990, in _run_once
    handle._run()
  File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/src/homeassistant/homeassistant/setup.py", line 165, in async_setup_component
    result = await _async_setup_component(hass, domain, config)
  File "/usr/src/homeassistant/homeassistant/setup.py", line 460, in _async_setup_component
    await asyncio.gather(
  File "/usr/src/homeassistant/homeassistant/setup.py", line 462, in <genexpr>
    create_eager_task(
  File "/usr/src/homeassistant/homeassistant/util/async_.py", line 37, in create_eager_task
    return Task(coro, loop=loop, name=name, eager_start=True)
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 752, in async_setup_locked
    await self.async_setup(hass, integration=integration)
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 604, in async_setup
    result = await component.async_setup_entry(hass, self)
  File "/config/custom_components/weenect/__init__.py", line 44, in async_setup_entry
    client = AioWeenect(username=username, password=password, session=session)