Skip to content

TimeTree Calendar 2.0.3 — sum of the changes below, no configuration changes needed

Latest

Choose a tag to compare

@acdcnow acdcnow released this 10 Oct 11:52

Fixed

  • Blocking call in the event loop: every start-up logged
    Detected blocking call to listdir ... custom_components/timetree/api.py, line 94.
    curl_cffi was imported lazily inside create_transport(), which runs during
    async_setup_entry() and therefore in the event loop; importing it scans
    site-packages via importlib.metadata. The transport libraries are now imported at
    module level (Home Assistant loads integration modules in the import executor) and
    create_transport() imports nothing.
  • Building the HTTP session (which loads a native TLS library) no longer happens in the
    event loop: the client is created through the new TimeTreeApi.async_create(), which
    constructs it in the executor. All three call sites (setup, config flow, options flow)
    use it.
  • uuid is no longer imported inside _login() and asyncio no longer inside the
    export.py helper.

Changed

  • Four regression tests covering the module level imports, the transport fallback, the
    executor based construction and the absence of inline TimeTreeApi(...) call sites
    (46 tests / 247 checks).
  • Version 2.0.3 in manifest.json and the README badge.

Full changelog: https://github.com/acdcnow/Timetree-Import-for-Home-Assistant/blob/2.0.3/CHANGELOG.md