homeassistant-stubs 2024.12.0b0__py3-none-any.whl → 2024.12.0b2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  from . import DOMAIN as DOMAIN
2
- from .const import CONF_ALLOWED_REGIONS as CONF_ALLOWED_REGIONS, CONF_GCID as CONF_GCID, CONF_READ_ONLY as CONF_READ_ONLY, CONF_REFRESH_TOKEN as CONF_REFRESH_TOKEN
2
+ from .const import CONF_ALLOWED_REGIONS as CONF_ALLOWED_REGIONS, CONF_CAPTCHA_REGIONS as CONF_CAPTCHA_REGIONS, CONF_CAPTCHA_TOKEN as CONF_CAPTCHA_TOKEN, CONF_CAPTCHA_URL as CONF_CAPTCHA_URL, CONF_GCID as CONF_GCID, CONF_READ_ONLY as CONF_READ_ONLY, CONF_REFRESH_TOKEN as CONF_REFRESH_TOKEN
3
3
  from _typeshed import Incomplete
4
4
  from collections.abc import Mapping
5
5
  from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigFlow as ConfigFlow, ConfigFlowResult as ConfigFlowResult, OptionsFlow as OptionsFlow, SOURCE_REAUTH as SOURCE_REAUTH, SOURCE_RECONFIGURE as SOURCE_RECONFIGURE
@@ -7,18 +7,22 @@ from homeassistant.const import CONF_PASSWORD as CONF_PASSWORD, CONF_REGION as C
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
8
8
  from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
9
9
  from homeassistant.helpers.selector import SelectSelector as SelectSelector, SelectSelectorConfig as SelectSelectorConfig
10
+ from homeassistant.util.ssl import get_default_context as get_default_context
10
11
  from typing import Any
11
12
 
12
13
  DATA_SCHEMA: Incomplete
14
+ CAPTCHA_SCHEMA: Incomplete
13
15
 
14
16
  async def validate_input(hass: HomeAssistant, data: dict[str, Any]) -> dict[str, str]: ...
15
17
 
16
18
  class BMWConfigFlow(ConfigFlow, domain=DOMAIN):
17
19
  VERSION: int
20
+ data: dict[str, Any]
18
21
  _existing_entry_data: Mapping[str, Any] | None
19
22
  async def async_step_user(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
20
23
  async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> ConfigFlowResult: ...
21
24
  async def async_step_reconfigure(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
25
+ async def async_step_captcha(self, user_input: dict[str, Any] | None = None) -> ConfigFlowResult: ...
22
26
  @staticmethod
23
27
  def async_get_options_flow(config_entry: ConfigEntry) -> BMWOptionsFlow: ...
24
28
 
@@ -5,10 +5,13 @@ DOMAIN: str
5
5
  ATTR_DIRECTION: str
6
6
  ATTR_VIN: str
7
7
  CONF_ALLOWED_REGIONS: Incomplete
8
+ CONF_CAPTCHA_REGIONS: Incomplete
8
9
  CONF_READ_ONLY: str
9
10
  CONF_ACCOUNT: str
10
11
  CONF_REFRESH_TOKEN: str
11
12
  CONF_GCID: str
13
+ CONF_CAPTCHA_TOKEN: str
14
+ CONF_CAPTCHA_URL: str
12
15
  DATA_HASS_CONFIG: str
13
16
  UNIT_MAP: Incomplete
14
17
  SCAN_INTERVALS: Incomplete
@@ -6,6 +6,7 @@ from aioesphomeapi import EntityInfo as EntityInfo, SelectInfo, SelectState
6
6
  from homeassistant.components.assist_pipeline.select import AssistPipelineSelect as AssistPipelineSelect, VadSensitivitySelect as VadSensitivitySelect
7
7
  from homeassistant.components.assist_satellite import AssistSatelliteConfiguration as AssistSatelliteConfiguration
8
8
  from homeassistant.components.select import SelectEntity as SelectEntity, SelectEntityDescription as SelectEntityDescription
9
+ from homeassistant.const import EntityCategory as EntityCategory
9
10
  from homeassistant.core import HomeAssistant as HomeAssistant, callback as callback
10
11
  from homeassistant.helpers import restore_state as restore_state
11
12
  from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
@@ -1,6 +1,6 @@
1
1
  from . import websocket_api as websocket_api
2
2
  from .const import DOMAIN as DOMAIN
3
- from .helpers import entities_may_have_state_changes_after as entities_may_have_state_changes_after, has_recorder_run_after as has_recorder_run_after
3
+ from .helpers import entities_may_have_state_changes_after as entities_may_have_state_changes_after, has_states_before as has_states_before
4
4
  from _typeshed import Incomplete
5
5
  from aiohttp import web
6
6
  from datetime import datetime as dt
@@ -1,8 +1,7 @@
1
1
  from collections.abc import Iterable
2
2
  from datetime import datetime as dt
3
3
  from homeassistant.components.recorder import get_instance as get_instance
4
- from homeassistant.components.recorder.models import process_timestamp as process_timestamp
5
4
  from homeassistant.core import HomeAssistant as HomeAssistant
6
5
 
7
6
  def entities_may_have_state_changes_after(hass: HomeAssistant, entity_ids: Iterable, start_time: dt, no_attributes: bool) -> bool: ...
8
- def has_recorder_run_after(hass: HomeAssistant, run_time: dt) -> bool: ...
7
+ def has_states_before(hass: HomeAssistant, run_time: dt) -> bool: ...
@@ -1,6 +1,6 @@
1
1
  import asyncio
2
2
  from .const import EVENT_COALESCE_TIME as EVENT_COALESCE_TIME, MAX_PENDING_HISTORY_STATES as MAX_PENDING_HISTORY_STATES
3
- from .helpers import entities_may_have_state_changes_after as entities_may_have_state_changes_after, has_recorder_run_after as has_recorder_run_after
3
+ from .helpers import entities_may_have_state_changes_after as entities_may_have_state_changes_after, has_states_before as has_states_before
4
4
  from _typeshed import Incomplete
5
5
  from collections.abc import Callable as Callable, Iterable
6
6
  from dataclasses import dataclass
@@ -1,6 +1,6 @@
1
- from ..db_schema import RecorderRuns as RecorderRuns, StateAttributes as StateAttributes, States as States
1
+ from ..db_schema import StateAttributes as StateAttributes, States as States
2
2
  from ..filters import Filters as Filters
3
- from ..models import process_timestamp as process_timestamp, process_timestamp_to_utc_isoformat as process_timestamp_to_utc_isoformat
3
+ from ..models import process_timestamp_to_utc_isoformat as process_timestamp_to_utc_isoformat
4
4
  from ..models.legacy import LegacyLazyState as LegacyLazyState, legacy_row_to_compressed_state as legacy_row_to_compressed_state
5
5
  from ..util import execute_stmt_lambda_element as execute_stmt_lambda_element, session_scope as session_scope
6
6
  from .const import LAST_CHANGED_KEY as LAST_CHANGED_KEY, NEED_ATTRIBUTE_DOMAINS as NEED_ATTRIBUTE_DOMAINS, SIGNIFICANT_DOMAINS as SIGNIFICANT_DOMAINS, SIGNIFICANT_DOMAINS_ENTITY_ID_LIKE as SIGNIFICANT_DOMAINS_ENTITY_ID_LIKE, STATE_KEY as STATE_KEY
@@ -42,7 +42,7 @@ def _state_changed_during_period_stmt(start_time: datetime, end_time: datetime |
42
42
  def state_changes_during_period(hass: HomeAssistant, start_time: datetime, end_time: datetime | None = None, entity_id: str | None = None, no_attributes: bool = False, descending: bool = False, limit: int | None = None, include_start_time_state: bool = True) -> dict[str, list[State]]: ...
43
43
  def _get_last_state_changes_stmt(number_of_states: int, entity_id: str) -> StatementLambdaElement: ...
44
44
  def get_last_state_changes(hass: HomeAssistant, number_of_states: int, entity_id: str) -> dict[str, list[State]]: ...
45
- def _get_states_for_entities_stmt(run_start: datetime, utc_point_in_time: datetime, entity_ids: list[str], no_attributes: bool) -> StatementLambdaElement: ...
46
- def _get_rows_with_session(hass: HomeAssistant, session: Session, utc_point_in_time: datetime, entity_ids: list[str], run: RecorderRuns | None = None, no_attributes: bool = False) -> Iterable[Row]: ...
45
+ def _get_states_for_entities_stmt(run_start_ts: float, utc_point_in_time: datetime, entity_ids: list[str], no_attributes: bool) -> StatementLambdaElement: ...
46
+ def _get_rows_with_session(hass: HomeAssistant, session: Session, utc_point_in_time: datetime, entity_ids: list[str], *, no_attributes: bool = False) -> Iterable[Row]: ...
47
47
  def _get_single_entity_states_stmt(utc_point_in_time: datetime, entity_id: str, no_attributes: bool = False) -> StatementLambdaElement: ...
48
48
  def _sorted_states_to_dict(hass: HomeAssistant, session: Session, states: Iterable[Row], start_time: datetime, entity_ids: list[str], include_start_time_state: bool = True, minimal_response: bool = False, no_attributes: bool = False, compressed_state_format: bool = False) -> dict[str, list[State | dict[str, Any]]]: ...
@@ -1,7 +1,7 @@
1
1
  from ..const import LAST_REPORTED_SCHEMA_VERSION as LAST_REPORTED_SCHEMA_VERSION
2
2
  from ..db_schema import SHARED_ATTR_OR_LEGACY_ATTRIBUTES as SHARED_ATTR_OR_LEGACY_ATTRIBUTES, StateAttributes as StateAttributes, States as States
3
3
  from ..filters import Filters as Filters
4
- from ..models import LazyState as LazyState, datetime_to_timestamp_or_none as datetime_to_timestamp_or_none, extract_metadata_ids as extract_metadata_ids, process_timestamp as process_timestamp, row_to_compressed_state as row_to_compressed_state
4
+ from ..models import LazyState as LazyState, datetime_to_timestamp_or_none as datetime_to_timestamp_or_none, extract_metadata_ids as extract_metadata_ids, row_to_compressed_state as row_to_compressed_state
5
5
  from ..util import execute_stmt_lambda_element as execute_stmt_lambda_element, session_scope as session_scope
6
6
  from .const import LAST_CHANGED_KEY as LAST_CHANGED_KEY, NEED_ATTRIBUTE_DOMAINS as NEED_ATTRIBUTE_DOMAINS, SIGNIFICANT_DOMAINS as SIGNIFICANT_DOMAINS, STATE_KEY as STATE_KEY
7
7
  from _typeshed import Incomplete
@@ -30,7 +30,7 @@ def _get_last_state_changes_single_stmt(metadata_id: int) -> Select: ...
30
30
  def _get_last_state_changes_multiple_stmt(number_of_states: int, metadata_id: int, include_last_reported: bool) -> Select: ...
31
31
  def get_last_state_changes(hass: HomeAssistant, number_of_states: int, entity_id: str) -> dict[str, list[State]]: ...
32
32
  def _get_start_time_state_for_entities_stmt(run_start_ts: float, epoch_time: float, metadata_ids: list[int], no_attributes: bool, include_last_changed: bool) -> Select: ...
33
- def _get_run_start_ts_for_utc_point_in_time(hass: HomeAssistant, utc_point_in_time: datetime) -> float | None: ...
33
+ def _get_oldest_possible_ts(hass: HomeAssistant, utc_point_in_time: datetime) -> float | None: ...
34
34
  def _get_start_time_state_stmt(run_start_ts: float, epoch_time: float, single_metadata_id: int | None, metadata_ids: list[int], no_attributes: bool, include_last_changed: bool) -> Select: ...
35
35
  def _get_single_entity_start_time_stmt(epoch_time: float, metadata_id: int, no_attributes: bool, include_last_changed: bool, include_last_reported: bool) -> Select: ...
36
36
  def _sorted_states_to_dict(states: Iterable[Row], start_time_ts: float | None, entity_ids: list[str], entity_id_to_metadata_id: dict[str, int | None], minimal_response: bool = False, compressed_state_format: bool = False, descending: bool = False, no_attributes: bool = False) -> dict[str, list[State | dict[str, Any]]]: ...
@@ -26,6 +26,7 @@ def delete_event_rows(event_ids: Iterable[int]) -> StatementLambdaElement: ...
26
26
  def delete_recorder_runs_rows(purge_before: datetime, current_run_id: int) -> StatementLambdaElement: ...
27
27
  def find_events_to_purge(purge_before: float, max_bind_vars: int) -> StatementLambdaElement: ...
28
28
  def find_states_to_purge(purge_before: float, max_bind_vars: int) -> StatementLambdaElement: ...
29
+ def find_oldest_state() -> StatementLambdaElement: ...
29
30
  def find_short_term_statistics_to_purge(purge_before: datetime, max_bind_vars: int) -> StatementLambdaElement: ...
30
31
  def find_statistics_runs_to_purge(purge_before: datetime, max_bind_vars: int) -> StatementLambdaElement: ...
31
32
  def find_latest_statistics_runs_run_id() -> StatementLambdaElement: ...
@@ -1,11 +1,17 @@
1
1
  from ..db_schema import States as States
2
+ from ..queries import find_oldest_state as find_oldest_state
3
+ from ..util import execute_stmt_lambda_element as execute_stmt_lambda_element
2
4
  from _typeshed import Incomplete
5
+ from sqlalchemy.orm.session import Session as Session
3
6
 
4
7
  class StatesManager:
5
8
  _pending: Incomplete
6
9
  _last_committed_id: Incomplete
7
10
  _last_reported: Incomplete
11
+ _oldest_ts: Incomplete
8
12
  def __init__(self) -> None: ...
13
+ @property
14
+ def oldest_ts(self) -> float | None: ...
9
15
  def pop_pending(self, entity_id: str) -> States | None: ...
10
16
  def pop_committed(self, entity_id: str) -> int | None: ...
11
17
  def add_pending(self, entity_id: str, state: States) -> None: ...
@@ -13,5 +19,6 @@ class StatesManager:
13
19
  def get_pending_last_reported_timestamp(self) -> dict[int, float]: ...
14
20
  def post_commit_pending(self) -> None: ...
15
21
  def reset(self) -> None: ...
22
+ def load_from_db(self, session: Session) -> None: ...
16
23
  def evict_purged_state_ids(self, purged_state_ids: set[int]) -> None: ...
17
24
  def evict_purged_entity_ids(self, purged_entity_ids: set[str]) -> None: ...
@@ -6,6 +6,7 @@ from homeassistant.components.media_player import BrowseError as BrowseError, Br
6
6
  from homeassistant.config_entries import ConfigEntryState as ConfigEntryState
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from spotifyaio import Artist as Artist, BasePlaylist as BasePlaylist, SimplifiedAlbum as SimplifiedAlbum, SimplifiedTrack as SimplifiedTrack, SpotifyClient as SpotifyClient
9
+ from spotifyaio.models import SimplifiedEpisode
9
10
  from typing import Any, TypedDict
10
11
 
11
12
  BROWSE_LIMIT: int
@@ -22,6 +23,7 @@ def _get_artist_item_payload(artist: Artist) -> ItemPayload: ...
22
23
  def _get_album_item_payload(album: SimplifiedAlbum) -> ItemPayload: ...
23
24
  def _get_playlist_item_payload(playlist: BasePlaylist) -> ItemPayload: ...
24
25
  def _get_track_item_payload(track: SimplifiedTrack, show_thumbnails: bool = True) -> ItemPayload: ...
26
+ def _get_episode_item_payload(episode: SimplifiedEpisode) -> ItemPayload: ...
25
27
 
26
28
  class BrowsableMedia(StrEnum):
27
29
  CURRENT_USER_PLAYLISTS = 'current_user_playlists'
@@ -32,8 +34,6 @@ class BrowsableMedia(StrEnum):
32
34
  CURRENT_USER_RECENTLY_PLAYED = 'current_user_recently_played'
33
35
  CURRENT_USER_TOP_ARTISTS = 'current_user_top_artists'
34
36
  CURRENT_USER_TOP_TRACKS = 'current_user_top_tracks'
35
- CATEGORIES = 'categories'
36
- FEATURED_PLAYLISTS = 'featured_playlists'
37
37
  NEW_RELEASES = 'new_releases'
38
38
 
39
39
  LIBRARY_MAP: Incomplete
@@ -7,7 +7,6 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry
7
7
  from homeassistant.core import HomeAssistant as HomeAssistant
8
8
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator as DataUpdateCoordinator, UpdateFailed as UpdateFailed
9
9
  from spotifyaio import PlaybackState as PlaybackState, Playlist as Playlist, SpotifyClient as SpotifyClient, UserProfile as UserProfile
10
- from spotifyaio.models import AudioFeatures as AudioFeatures
11
10
 
12
11
  _LOGGER: Incomplete
13
12
  type SpotifyConfigEntry = ConfigEntry[SpotifyData]
@@ -17,9 +16,8 @@ class SpotifyCoordinatorData:
17
16
  current_playback: PlaybackState | None
18
17
  position_updated_at: datetime | None
19
18
  playlist: Playlist | None
20
- audio_features: AudioFeatures | None
21
19
  dj_playlist: bool = ...
22
- def __init__(self, current_playback, position_updated_at, playlist, audio_features, dj_playlist=...) -> None: ...
20
+ def __init__(self, current_playback, position_updated_at, playlist, dj_playlist=...) -> None: ...
23
21
 
24
22
  SPOTIFY_DJ_PLAYLIST_URI: str
25
23
 
@@ -28,7 +26,6 @@ class SpotifyCoordinator(DataUpdateCoordinator[SpotifyCoordinatorData]):
28
26
  config_entry: SpotifyConfigEntry
29
27
  client: Incomplete
30
28
  _playlist: Incomplete
31
- _currently_loaded_track: Incomplete
32
29
  def __init__(self, hass: HomeAssistant, client: SpotifyClient) -> None: ...
33
30
  async def _async_setup(self) -> None: ...
34
31
  async def _async_update_data(self) -> SpotifyCoordinatorData: ...
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: homeassistant-stubs
3
- Version: 2024.12.0b0
3
+ Version: 2024.12.0b2
4
4
  Summary: PEP 484 typing stubs for Home Assistant Core
5
5
  Project-URL: Homepage, https://github.com/KapJI/homeassistant-stubs
6
6
  Project-URL: Bug Tracker, https://github.com/KapJI/homeassistant-stubs/issues
@@ -17,7 +17,7 @@ Classifier: Topic :: Home Automation
17
17
  Classifier: Topic :: Software Development
18
18
  Classifier: Typing :: Typed
19
19
  Requires-Python: <3.14,>=3.12
20
- Requires-Dist: homeassistant==2024.12.0b0
20
+ Requires-Dist: homeassistant==2024.12.0b2
21
21
  Description-Content-Type: text/markdown
22
22
 
23
23
  [![CI](https://github.com/KapJI/homeassistant-stubs/actions/workflows/ci.yaml/badge.svg)](https://github.com/KapJI/homeassistant-stubs/actions/workflows/ci.yaml)
@@ -479,8 +479,8 @@ homeassistant-stubs/components/bluetooth_tracker/device_tracker.pyi,sha256=x33M_
479
479
  homeassistant-stubs/components/bmw_connected_drive/__init__.pyi,sha256=H6Qss40KjP6UHx2k_m-6e7pUDNP3MspTyz38fCBgQsg,1241
480
480
  homeassistant-stubs/components/bmw_connected_drive/binary_sensor.pyi,sha256=wdevqh3ETyhUuVjJa3KBqjhxrkQKd5NgHP1Vu95NC1I,2749
481
481
  homeassistant-stubs/components/bmw_connected_drive/button.pyi,sha256=98FWTp_o2vNby8C3TsDs1Sz6WTxECj3AD9PAQsLMu-A,2004
482
- homeassistant-stubs/components/bmw_connected_drive/config_flow.pyi,sha256=o__iaAw7yFM_QNVLfsXvRyr1CeSfD7BPOPacxqR4fjg,1984
483
- homeassistant-stubs/components/bmw_connected_drive/const.pyi,sha256=IvzkouJqxVPq2-8BkXV_71HfeKpIOjRQjAq68HaQ5vE,351
482
+ homeassistant-stubs/components/bmw_connected_drive/config_flow.pyi,sha256=qdBk9wEfQjIzwQt5FXZ-NSCz4LFWn8IQq2isNZny6h8,2346
483
+ homeassistant-stubs/components/bmw_connected_drive/const.pyi,sha256=Br5PN1JSpJGsytfizkizuRFz1fVXHIk7CaUbpUf35Sw,430
484
484
  homeassistant-stubs/components/bmw_connected_drive/coordinator.pyi,sha256=MThU0SjYv87xdErN0OQEDe70S16ioc6dMiuAejyiaZM,1207
485
485
  homeassistant-stubs/components/bmw_connected_drive/device_tracker.pyi,sha256=ZtkntTTw7OhcFcdlI48huYrdfm-Px0U1JH1OlLycPqM,1226
486
486
  homeassistant-stubs/components/bmw_connected_drive/diagnostics.pyi,sha256=OkBaVQzY7ivHu3vkGFBoNZjkq5xpUNmhJrl9sQHDSLU,923
@@ -1007,7 +1007,7 @@ homeassistant-stubs/components/esphome/manager.pyi,sha256=TPTE4hRQiN9IK0O1wyiDWA
1007
1007
  homeassistant-stubs/components/esphome/media_player.pyi,sha256=BqeX2f8Ge_qhNckRVEKT5lG5PXn7HUs2BMXHNUbMvnM,2558
1008
1008
  homeassistant-stubs/components/esphome/number.pyi,sha256=cstMNhvdNTBzaWyNLodOd_FcsNIKUwk5RRJCQ93FUgM,1296
1009
1009
  homeassistant-stubs/components/esphome/repairs.pyi,sha256=ssfvWtuB1jdydCITwuqLLTQGDh15D6Qd_3vGLR8D3SY,416
1010
- homeassistant-stubs/components/esphome/select.pyi,sha256=vqcmQnYyt0s0NoM7OOks6x64ODGsSKZGmK5thotdIi0,2565
1010
+ homeassistant-stubs/components/esphome/select.pyi,sha256=8ThmDfOWkkRO-Uw2If1s08SYbOPSB3JqUcCkoCUNlQA,2630
1011
1011
  homeassistant-stubs/components/esphome/sensor.pyi,sha256=B2KIQoFrU0zUrnoRV0GzmHmJxFI6_MY-5qFqRGUNTn0,1721
1012
1012
  homeassistant-stubs/components/esphome/switch.pyi,sha256=S07GasrfFp8vM4l0EulKRAmqrtgFLxT7mCfM5DVhTKQ,1015
1013
1013
  homeassistant-stubs/components/esphome/text.pyi,sha256=8gIzeCItqj-2XHqvZWUpOVVajpdfRGSKKeBbY4h3cjM,1032
@@ -1306,10 +1306,10 @@ homeassistant-stubs/components/here_travel_time/const.pyi,sha256=oa4UlSMmBXUE8LK
1306
1306
  homeassistant-stubs/components/here_travel_time/coordinator.pyi,sha256=oeM-ElzWD6ngfQUTxx7UI6yvrVmz_abTgbQbxaS-Yrk,1907
1307
1307
  homeassistant-stubs/components/here_travel_time/model.pyi,sha256=QVkyWY1rRymtB-el9nYtkhi70TjiYD7rXwPUxCP2viM,878
1308
1308
  homeassistant-stubs/components/here_travel_time/sensor.pyi,sha256=7TaFx_EHsd3D9c9F7gMRcO_L8w-h-yUiztb2VCsd_90,2946
1309
- homeassistant-stubs/components/history/__init__.pyi,sha256=iiXVUSEL5rRaROcKP8PZ8L5rQ3YGz2_CQKpWlWASuEI,1623
1309
+ homeassistant-stubs/components/history/__init__.pyi,sha256=VXRt1eAK3SIeBW6WoaFb0eSOCpln_aToqmeUMA3rw9U,1613
1310
1310
  homeassistant-stubs/components/history/const.pyi,sha256=-PZ4FxcMPncwe3zKFvlt8lumPtorKkP5dViiDItRIww,71
1311
- homeassistant-stubs/components/history/helpers.pyi,sha256=yIlR3fPtFrPib45Av8llWRo1OC0uc82AF4T0KFOavmQ,513
1312
- homeassistant-stubs/components/history/websocket_api.pyi,sha256=pUDZo6XDvLdJ7KQAy4FUkF1sezrw5qPVgoeTa55yEXk,4130
1311
+ homeassistant-stubs/components/history/helpers.pyi,sha256=uBJmqYNrHPmaLLSyrIEsADASFrnGT3xOwPbYX7nEtME,416
1312
+ homeassistant-stubs/components/history/websocket_api.pyi,sha256=PSvw2n1opuJ4VEY73LfNY_MvteHplnqDecbPSrG9f1Q,4120
1313
1313
  homeassistant-stubs/components/history_stats/__init__.pyi,sha256=ub0dqSsk23WbVjQehZLEW3vTh_YYy_15BjEDjJBDmFc,1034
1314
1314
  homeassistant-stubs/components/history_stats/config_flow.pyi,sha256=O1npyFLkn_0-K3SdEOPz4nb4YTuRktc4roLg0xSoQj0,1561
1315
1315
  homeassistant-stubs/components/history_stats/const.pyi,sha256=JVFdRbNJsd9zd3av-vvMx_WXIQ1MM3Si9HEL1TSNcUU,306
@@ -2517,7 +2517,7 @@ homeassistant-stubs/components/recorder/filters.pyi,sha256=l8qnsQC0mhUcCJauqv6ID
2517
2517
  homeassistant-stubs/components/recorder/migration.pyi,sha256=P-unW782C6VMGDkNTAaOMf3AQAmNJtjhRLL0UgI814c,20079
2518
2518
  homeassistant-stubs/components/recorder/pool.pyi,sha256=NEBEP2CTRuAx3Nq2zXeOCfk7n4qVWVZ4hjzYgk-RxDE,1219
2519
2519
  homeassistant-stubs/components/recorder/purge.pyi,sha256=rFgTAV4Un0h6OP7FdKTOa6eiP_I-Owf6dXYC2bR2JZ4,5546
2520
- homeassistant-stubs/components/recorder/queries.pyi,sha256=kng2f2rd05JvKBA66aiAA9-f__iHq2XoAJgUXMWkV_E,8680
2520
+ homeassistant-stubs/components/recorder/queries.pyi,sha256=XGI8HaTzGDZ6sCmIv96oeZKVDSIOpVdlPB8-StZZmpo,8735
2521
2521
  homeassistant-stubs/components/recorder/repack.pyi,sha256=uT-A8NGsSHYz1fQo2pVBFVRzp0z0GhMiwN5Ydl4bUN4,247
2522
2522
  homeassistant-stubs/components/recorder/services.pyi,sha256=VULd5jf1yak05XG2PL4xrwHp5any94qRVhxdc14hdHI,1429
2523
2523
  homeassistant-stubs/components/recorder/statistics.pyi,sha256=EZjsioDctZUUO8VyhTTVK3IcNXlEaHloBqzRVb5WgEM,17777
@@ -2535,8 +2535,8 @@ homeassistant-stubs/components/recorder/auto_repairs/statistics/duplicates.pyi,s
2535
2535
  homeassistant-stubs/components/recorder/auto_repairs/statistics/schema.pyi,sha256=ZGHKXHbB7gs99L-dK6HZ9hZh7eBXF9_s_cfMliOvSmM,720
2536
2536
  homeassistant-stubs/components/recorder/history/__init__.pyi,sha256=Tibqdb5DGrgUDIZNSTvc2pUrGoi7243DD1cBQ45LxZI,2102
2537
2537
  homeassistant-stubs/components/recorder/history/const.pyi,sha256=QiVq0ILuLWh_v0c_ZAhhaJuS_a2B4yKXQHgy97r81rs,212
2538
- homeassistant-stubs/components/recorder/history/legacy.pyi,sha256=CfbiLHmVUAovJNrOltWYmAXFAO6AfPz61mbxl_UxGHY,5165
2539
- homeassistant-stubs/components/recorder/history/modern.pyi,sha256=7bOl-QrGsOJJlZaGwoTACoM8nFFS5VojTjeegsZlUCo,5272
2538
+ homeassistant-stubs/components/recorder/history/legacy.pyi,sha256=HPYv2HlTud1bEeMKXw7cxHR5TV6XMjSyfNcWt5dyurE,5065
2539
+ homeassistant-stubs/components/recorder/history/modern.pyi,sha256=zOVEA73Qux23swh-I5gNZsQQwjO7g-wtIG9CADl2pG8,5216
2540
2540
  homeassistant-stubs/components/recorder/models/__init__.pyi,sha256=CUFfhF4KMdIayXSUuLXww7U40t5DBCUaf1Nr_2Lvfmw,1790
2541
2541
  homeassistant-stubs/components/recorder/models/context.pyi,sha256=ozPnonl9i-pXBokFkAq5QTEtsxj8Yfb7M2M444kyFRI,394
2542
2542
  homeassistant-stubs/components/recorder/models/database.pyi,sha256=59cqL8iEiBTQrF-n762RORfm9Q_xaJ8OW_7PbARe3WY,554
@@ -2555,7 +2555,7 @@ homeassistant-stubs/components/recorder/table_managers/event_data.pyi,sha256=shj
2555
2555
  homeassistant-stubs/components/recorder/table_managers/event_types.pyi,sha256=zUohyVAYXmy3GgUt_gWRCCo8AFxsr4s4rPsd1olbqU8,1491
2556
2556
  homeassistant-stubs/components/recorder/table_managers/recorder_runs.pyi,sha256=DruGzLyPcgG_7Y9-aCbWGsVzUgb5-8XguyyeHZsOoGY,1252
2557
2557
  homeassistant-stubs/components/recorder/table_managers/state_attributes.pyi,sha256=R018ZzYVpOwp3cyBVY4GYrLnrUWyjdaDmiLsqHPwyPQ,1550
2558
- homeassistant-stubs/components/recorder/table_managers/states.pyi,sha256=CtMsPngDOfD9r8Kr1VMnzhu2p7PHkRevzE28KIgCOUo,836
2558
+ homeassistant-stubs/components/recorder/table_managers/states.pyi,sha256=Hs6fEoEXH35vw-CiPcEIGioUi9XVKftsbikAg50K9Fc,1173
2559
2559
  homeassistant-stubs/components/recorder/table_managers/states_meta.pyi,sha256=eoAC195GdOyZIM3-RHGVrWMhVR_1oCqjNFpWFCm6OYY,1463
2560
2560
  homeassistant-stubs/components/recorder/table_managers/statistics_meta.pyi,sha256=9mLK8SvSaK_-kV75Ook95OV1PkhwKZWM3T6HHE6tgMY,2756
2561
2561
  homeassistant-stubs/components/remote/__init__.pyi,sha256=thGGFvHCAgR0O4EI8lISnmbINJCze2czah6B5Sismp8,4095
@@ -2920,15 +2920,14 @@ homeassistant-stubs/components/speedtestdotnet/coordinator.pyi,sha256=e3bBIOnXqT
2920
2920
  homeassistant-stubs/components/speedtestdotnet/sensor.pyi,sha256=jOhiz4bMa4mDBoWRP0aP2mVl2ccpON54PViOTFLJIyo,2622
2921
2921
  homeassistant-stubs/components/spotify/__init__.pyi,sha256=Yi8o0hLZiaz00-hrkKwYmEAMI2xQAcIYyTpaZnSDbmQ,437
2922
2922
  homeassistant-stubs/components/spotify/application_credentials.pyi,sha256=Hra7BGzFBCV4iwzzb0E2x0pEzZCctL7V-Y3mSqXmvWs,257
2923
- homeassistant-stubs/components/spotify/browse_media.pyi,sha256=ahw8occ1DFueh8HtuigzDGA-84q7ITs_TQJ9oZ5hR3k,2682
2923
+ homeassistant-stubs/components/spotify/browse_media.pyi,sha256=W4N41uAJIN40LvSKLA3jZUaBOosLBxO-JWqPsW0YUgs,2732
2924
2924
  homeassistant-stubs/components/spotify/config_flow.pyi,sha256=aUsCN-aXlOXnp4EIZbyNqC6d0RVOXQlDPOEMUMoVs6Y,1122
2925
2925
  homeassistant-stubs/components/spotify/const.pyi,sha256=GOw4vthI7eJAe4DJO1OrgoTaPc0h2paoeqiLHCrSwpw,244
2926
- homeassistant-stubs/components/spotify/coordinator.pyi,sha256=zaZRGWilzTSQBFqjV3YB3XPgYuhsrMq2upsZwSD6Xok,1508
2926
+ homeassistant-stubs/components/spotify/coordinator.pyi,sha256=zNKScew5B1gGsXmWba2NXKHopz-748mNWWopRy_Dd6w,1350
2927
2927
  homeassistant-stubs/components/spotify/diagnostics.pyi,sha256=o60XIOekBhj0Gsy7JUn_EfK2Oj-aRfrLhMPSr41Xrqc,268
2928
2928
  homeassistant-stubs/components/spotify/entity.pyi,sha256=CFCKXDGo1ql1i3J3qsM0TL1ywOzfPIV3eNzf6cVB138,534
2929
2929
  homeassistant-stubs/components/spotify/media_player.pyi,sha256=NJEH0NKQQUFEdmtiXHWeEU-iRriNJPXSL-e51YIhYYM,4325
2930
2930
  homeassistant-stubs/components/spotify/models.pyi,sha256=2Vrdk4u6nn0Gy0-uwHSNKMaUl60wUmOv4DHaeAGqnAg,540
2931
- homeassistant-stubs/components/spotify/sensor.pyi,sha256=Up3ptvVBXsuNdWhrc2RGYTMph0QDbyyvVGCaKCBulzE,2027
2932
2931
  homeassistant-stubs/components/spotify/system_health.pyi,sha256=Ht4CAzjNxrifQmLgrpkzVKivDt0VIcGlYj7RiDh1PTw,352
2933
2932
  homeassistant-stubs/components/spotify/util.pyi,sha256=odnvW67eBiuvju5lXSAUEAcN8KI7Q6DIrK37ZKncnkU,367
2934
2933
  homeassistant-stubs/components/sql/__init__.pyi,sha256=jI2uC0kT1w5dbLaq6mf5htbiHdo1WWObfgxNqf7birs,1694
@@ -3789,7 +3788,7 @@ homeassistant-stubs/util/yaml/dumper.pyi,sha256=uQjW0KuME-gXVWgYJLNLoRDwDzVhhhgg
3789
3788
  homeassistant-stubs/util/yaml/input.pyi,sha256=wuxpKYTXZL4MujFhqjHnRLv4VPYY6QPYd-Zji-Lz9Mo,383
3790
3789
  homeassistant-stubs/util/yaml/loader.pyi,sha256=FpRpxb-ZvfthDdO6Js0JqWtzlQfKDPP7nY5yOXp3604,3917
3791
3790
  homeassistant-stubs/util/yaml/objects.pyi,sha256=YUlr0nf9ugzJT9J2YHaGV2fXu5opuyNvvHPqNW46m5I,707
3792
- homeassistant_stubs-2024.12.0b0.dist-info/METADATA,sha256=iyysQ92gZHGwMfvvWU67j4paZJy2WKtrgmq4DrSz-cs,2936
3793
- homeassistant_stubs-2024.12.0b0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
3794
- homeassistant_stubs-2024.12.0b0.dist-info/licenses/LICENSE,sha256=_kHFjg-MAmJ-lXc7HiEjUzD3vZutVYKUVZZpAWcIuqo,1075
3795
- homeassistant_stubs-2024.12.0b0.dist-info/RECORD,,
3791
+ homeassistant_stubs-2024.12.0b2.dist-info/METADATA,sha256=aQ3L1Q1MeU9wab-6pq-iO5KEOjpNYZzh-GiBWj8VCA4,2936
3792
+ homeassistant_stubs-2024.12.0b2.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
3793
+ homeassistant_stubs-2024.12.0b2.dist-info/licenses/LICENSE,sha256=_kHFjg-MAmJ-lXc7HiEjUzD3vZutVYKUVZZpAWcIuqo,1075
3794
+ homeassistant_stubs-2024.12.0b2.dist-info/RECORD,,
@@ -1,31 +0,0 @@
1
- from .coordinator import SpotifyConfigEntry as SpotifyConfigEntry, SpotifyCoordinator as SpotifyCoordinator
2
- from .entity import SpotifyEntity as SpotifyEntity
3
- from _typeshed import Incomplete
4
- from collections.abc import Callable as Callable
5
- from dataclasses import dataclass
6
- from homeassistant.components.sensor import SensorDeviceClass as SensorDeviceClass, SensorEntity as SensorEntity, SensorEntityDescription as SensorEntityDescription
7
- from homeassistant.const import PERCENTAGE as PERCENTAGE
8
- from homeassistant.core import HomeAssistant as HomeAssistant
9
- from homeassistant.helpers.entity_platform import AddEntitiesCallback as AddEntitiesCallback
10
- from spotifyaio.models import AudioFeatures as AudioFeatures, Key
11
-
12
- @dataclass(frozen=True, kw_only=True)
13
- class SpotifyAudioFeaturesSensorEntityDescription(SensorEntityDescription):
14
- value_fn: Callable[[AudioFeatures], float | str | None]
15
- def __init__(self, *, key, device_class=..., entity_category=..., entity_registry_enabled_default=..., entity_registry_visible_default=..., force_update=..., icon=..., has_entity_name=..., name=..., translation_key=..., translation_placeholders=..., unit_of_measurement=..., last_reset=..., native_unit_of_measurement=..., options=..., state_class=..., suggested_display_precision=..., suggested_unit_of_measurement=..., value_fn) -> None: ...
16
-
17
- KEYS: dict[Key, str]
18
- KEY_OPTIONS: Incomplete
19
-
20
- def _get_key(audio_features: AudioFeatures) -> str | None: ...
21
-
22
- AUDIO_FEATURE_SENSORS: tuple[SpotifyAudioFeaturesSensorEntityDescription, ...]
23
-
24
- async def async_setup_entry(hass: HomeAssistant, entry: SpotifyConfigEntry, async_add_entities: AddEntitiesCallback) -> None: ...
25
-
26
- class SpotifyAudioFeatureSensor(SpotifyEntity, SensorEntity):
27
- entity_description: SpotifyAudioFeaturesSensorEntityDescription
28
- _attr_unique_id: Incomplete
29
- def __init__(self, coordinator: SpotifyCoordinator, entity_description: SpotifyAudioFeaturesSensorEntityDescription) -> None: ...
30
- @property
31
- def native_value(self) -> float | str | None: ...