homeassistant-stubs 2025.3.0b2__py3-none-any.whl → 2025.3.0b4__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.
- homeassistant-stubs/components/alert/entity.pyi +1 -1
- homeassistant-stubs/components/calendar/__init__.pyi +1 -0
- homeassistant-stubs/components/derivative/sensor.pyi +2 -2
- homeassistant-stubs/components/esphome/const.pyi +1 -0
- homeassistant-stubs/components/home_connect/coordinator.pyi +0 -1
- homeassistant-stubs/components/homee/sensor.pyi +3 -0
- homeassistant-stubs/components/music_assistant/__init__.pyi +3 -1
- homeassistant-stubs/components/recorder/const.pyi +1 -0
- homeassistant-stubs/components/recorder/history/modern.pyi +9 -6
- homeassistant-stubs/components/recorder/models/database.pyi +1 -0
- homeassistant-stubs/components/recorder/statistics.pyi +5 -3
- homeassistant-stubs/components/roborock/image.pyi +2 -0
- homeassistant-stubs/components/tradfri/__init__.pyi +2 -0
- {homeassistant_stubs-2025.3.0b2.dist-info → homeassistant_stubs-2025.3.0b4.dist-info}/METADATA +2 -2
- {homeassistant_stubs-2025.3.0b2.dist-info → homeassistant_stubs-2025.3.0b4.dist-info}/RECORD +17 -17
- {homeassistant_stubs-2025.3.0b2.dist-info → homeassistant_stubs-2025.3.0b4.dist-info}/WHEEL +0 -0
- {homeassistant_stubs-2025.3.0b2.dist-info → homeassistant_stubs-2025.3.0b4.dist-info}/licenses/LICENSE +0 -0
@@ -4,7 +4,7 @@ from collections.abc import Callable as Callable
|
|
4
4
|
from homeassistant.components.notify import ATTR_DATA as ATTR_DATA, ATTR_MESSAGE as ATTR_MESSAGE, ATTR_TITLE as ATTR_TITLE
|
5
5
|
from homeassistant.const import STATE_IDLE as STATE_IDLE, STATE_OFF as STATE_OFF, STATE_ON as STATE_ON
|
6
6
|
from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, HassJob as HassJob, HomeAssistant as HomeAssistant
|
7
|
-
from homeassistant.exceptions import ServiceNotFound as ServiceNotFound
|
7
|
+
from homeassistant.exceptions import ServiceNotFound as ServiceNotFound, ServiceValidationError as ServiceValidationError
|
8
8
|
from homeassistant.helpers.entity import Entity as Entity
|
9
9
|
from homeassistant.helpers.event import async_track_point_in_time as async_track_point_in_time, async_track_state_change_event as async_track_state_change_event
|
10
10
|
from homeassistant.helpers.template import Template as Template
|
@@ -31,6 +31,7 @@ def _has_timezone(*keys: Any) -> Callable[[dict[str, Any]], dict[str, Any]]: ...
|
|
31
31
|
def _has_consistent_timezone(*keys: Any) -> Callable[[dict[str, Any]], dict[str, Any]]: ...
|
32
32
|
def _as_local_timezone(*keys: Any) -> Callable[[dict[str, Any]], dict[str, Any]]: ...
|
33
33
|
def _has_min_duration(start_key: str, end_key: str, min_duration: datetime.timedelta) -> Callable[[dict[str, Any]], dict[str, Any]]: ...
|
34
|
+
def _has_positive_interval(start_key: str, end_key: str, duration_key: str) -> Callable[[dict[str, Any]], dict[str, Any]]: ...
|
34
35
|
def _has_same_type(*keys: Any) -> Callable[[dict[str, Any]], dict[str, Any]]: ...
|
35
36
|
def _validate_rrule(value: Any) -> str: ...
|
36
37
|
def _empty_as_none(value: str | None) -> str | None: ...
|
@@ -5,11 +5,11 @@ from decimal import Decimal
|
|
5
5
|
from homeassistant.components.sensor import ATTR_STATE_CLASS as ATTR_STATE_CLASS, RestoreSensor as RestoreSensor, SensorEntity as SensorEntity, SensorStateClass as SensorStateClass
|
6
6
|
from homeassistant.config_entries import ConfigEntry as ConfigEntry
|
7
7
|
from homeassistant.const import ATTR_UNIT_OF_MEASUREMENT as ATTR_UNIT_OF_MEASUREMENT, CONF_NAME as CONF_NAME, CONF_SOURCE as CONF_SOURCE, STATE_UNAVAILABLE as STATE_UNAVAILABLE, STATE_UNKNOWN as STATE_UNKNOWN, UnitOfTime as UnitOfTime
|
8
|
-
from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, HomeAssistant as HomeAssistant, callback as callback
|
8
|
+
from homeassistant.core import Event as Event, EventStateChangedData as EventStateChangedData, EventStateReportedData as EventStateReportedData, HomeAssistant as HomeAssistant, State as State, callback as callback
|
9
9
|
from homeassistant.helpers.device import async_device_info_to_link_from_entity as async_device_info_to_link_from_entity
|
10
10
|
from homeassistant.helpers.device_registry import DeviceInfo as DeviceInfo
|
11
11
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback, AddEntitiesCallback as AddEntitiesCallback
|
12
|
-
from homeassistant.helpers.event import async_track_state_change_event as async_track_state_change_event
|
12
|
+
from homeassistant.helpers.event import async_track_state_change_event as async_track_state_change_event, async_track_state_report_event as async_track_state_report_event
|
13
13
|
from homeassistant.helpers.typing import ConfigType as ConfigType, DiscoveryInfoType as DiscoveryInfoType
|
14
14
|
|
15
15
|
_LOGGER: Incomplete
|
@@ -14,9 +14,11 @@ from pyHomee.model import HomeeAttribute as HomeeAttribute, HomeeNode as HomeeNo
|
|
14
14
|
|
15
15
|
def get_open_close_value(attribute: HomeeAttribute) -> str | None: ...
|
16
16
|
def get_window_value(attribute: HomeeAttribute) -> str | None: ...
|
17
|
+
def get_brightness_device_class(attribute: HomeeAttribute, device_class: SensorDeviceClass | None) -> SensorDeviceClass | None: ...
|
17
18
|
|
18
19
|
@dataclass(frozen=True, kw_only=True)
|
19
20
|
class HomeeSensorEntityDescription(SensorEntityDescription):
|
21
|
+
device_class_fn: Callable[[HomeeAttribute, SensorDeviceClass | None], SensorDeviceClass | None] = ...
|
20
22
|
value_fn: Callable[[HomeeAttribute], str | float | None] = ...
|
21
23
|
native_unit_of_measurement_fn: Callable[[str], str | None] = ...
|
22
24
|
|
@@ -34,6 +36,7 @@ class HomeeSensor(HomeeEntity, SensorEntity):
|
|
34
36
|
entity_description: HomeeSensorEntityDescription
|
35
37
|
_attr_translation_key: Incomplete
|
36
38
|
_attr_translation_placeholders: Incomplete
|
39
|
+
_attr_device_class: Incomplete
|
37
40
|
def __init__(self, attribute: HomeeAttribute, entry: HomeeConfigEntry, description: HomeeSensorEntityDescription) -> None: ...
|
38
41
|
@property
|
39
42
|
def native_value(self) -> float | str | None: ...
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import asyncio
|
2
|
-
from .actions import register_actions as register_actions
|
2
|
+
from .actions import get_music_assistant_client as get_music_assistant_client, register_actions as register_actions
|
3
3
|
from .const import DOMAIN as DOMAIN, LOGGER as LOGGER
|
4
4
|
from _typeshed import Incomplete
|
5
5
|
from dataclasses import dataclass
|
@@ -7,6 +7,7 @@ from homeassistant.config_entries import ConfigEntry as ConfigEntry, ConfigEntry
|
|
7
7
|
from homeassistant.const import CONF_URL as CONF_URL, EVENT_HOMEASSISTANT_STOP as EVENT_HOMEASSISTANT_STOP, Platform as Platform
|
8
8
|
from homeassistant.core import Event as Event, HomeAssistant as HomeAssistant
|
9
9
|
from homeassistant.exceptions import ConfigEntryNotReady as ConfigEntryNotReady
|
10
|
+
from homeassistant.helpers import device_registry as dr
|
10
11
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession as async_get_clientsession
|
11
12
|
from homeassistant.helpers.issue_registry import IssueSeverity as IssueSeverity, async_create_issue as async_create_issue, async_delete_issue as async_delete_issue
|
12
13
|
from homeassistant.helpers.typing import ConfigType as ConfigType
|
@@ -28,3 +29,4 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ...
|
|
28
29
|
async def async_setup_entry(hass: HomeAssistant, entry: MusicAssistantConfigEntry) -> bool: ...
|
29
30
|
async def _client_listen(hass: HomeAssistant, entry: ConfigEntry, mass: MusicAssistantClient, init_ready: asyncio.Event) -> None: ...
|
30
31
|
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
|
32
|
+
async def async_remove_config_entry_device(hass: HomeAssistant, config_entry: ConfigEntry, device_entry: dr.DeviceEntry) -> bool: ...
|
@@ -13,6 +13,7 @@ DOMAIN: str
|
|
13
13
|
CONF_DB_INTEGRITY_CHECK: str
|
14
14
|
MAX_QUEUE_BACKLOG_MIN_VALUE: int
|
15
15
|
MIN_AVAILABLE_MEMORY_FOR_QUEUE_BACKLOG: Incomplete
|
16
|
+
MAX_IDS_FOR_INDEXED_GROUP_BY: int
|
16
17
|
DEFAULT_MAX_BIND_VARS: int
|
17
18
|
DB_WORKER_PREFIX: str
|
18
19
|
ALL_DOMAIN_EXCLUDE_ATTRS: Incomplete
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from ..const import LAST_REPORTED_SCHEMA_VERSION as LAST_REPORTED_SCHEMA_VERSION
|
1
|
+
from ..const import LAST_REPORTED_SCHEMA_VERSION as LAST_REPORTED_SCHEMA_VERSION, MAX_IDS_FOR_INDEXED_GROUP_BY as MAX_IDS_FOR_INDEXED_GROUP_BY
|
2
2
|
from ..db_schema import SHARED_ATTR_OR_LEGACY_ATTRIBUTES as SHARED_ATTR_OR_LEGACY_ATTRIBUTES, StateAttributes as StateAttributes, States as States, StatesMeta as StatesMeta
|
3
3
|
from ..filters import Filters as Filters
|
4
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
|
@@ -10,8 +10,9 @@ from datetime import datetime
|
|
10
10
|
from homeassistant.const import COMPRESSED_STATE_LAST_UPDATED as COMPRESSED_STATE_LAST_UPDATED, COMPRESSED_STATE_STATE as COMPRESSED_STATE_STATE
|
11
11
|
from homeassistant.core import HomeAssistant as HomeAssistant, State as State, split_entity_id as split_entity_id
|
12
12
|
from homeassistant.helpers.recorder import get_instance as get_instance
|
13
|
-
from
|
14
|
-
from sqlalchemy
|
13
|
+
from homeassistant.util.collection import chunked_or_all as chunked_or_all
|
14
|
+
from sqlalchemy import CompoundSelect as CompoundSelect, Select as Select, StatementLambdaElement as StatementLambdaElement, Subquery as Subquery
|
15
|
+
from sqlalchemy.engine.row import Row
|
15
16
|
from sqlalchemy.orm.session import Session as Session
|
16
17
|
from typing import Any
|
17
18
|
|
@@ -21,16 +22,18 @@ def _stmt_and_join_attributes(no_attributes: bool, include_last_changed: bool, i
|
|
21
22
|
def _stmt_and_join_attributes_for_start_state(no_attributes: bool, include_last_changed: bool, include_last_reported: bool) -> Select: ...
|
22
23
|
def _select_from_subquery(subquery: Subquery | CompoundSelect, no_attributes: bool, include_last_changed: bool, include_last_reported: bool) -> Select: ...
|
23
24
|
def get_significant_states(hass: HomeAssistant, start_time: datetime, end_time: datetime | None = None, entity_ids: list[str] | None = None, filters: Filters | None = None, include_start_time_state: bool = True, significant_changes_only: bool = True, minimal_response: bool = False, no_attributes: bool = False, compressed_state_format: bool = False) -> dict[str, list[State | dict[str, Any]]]: ...
|
24
|
-
def _significant_states_stmt(start_time_ts: float, end_time_ts: float | None, single_metadata_id: int | None, metadata_ids: list[int], metadata_ids_in_significant_domains: list[int], significant_changes_only: bool, no_attributes: bool, include_start_time_state: bool, run_start_ts: float | None) -> Select | CompoundSelect: ...
|
25
|
+
def _significant_states_stmt(start_time_ts: float, end_time_ts: float | None, single_metadata_id: int | None, metadata_ids: list[int], metadata_ids_in_significant_domains: list[int], significant_changes_only: bool, no_attributes: bool, include_start_time_state: bool, run_start_ts: float | None, slow_dependent_subquery: bool) -> Select | CompoundSelect: ...
|
25
26
|
def get_significant_states_with_session(hass: HomeAssistant, session: Session, start_time: datetime, end_time: datetime | None = None, entity_ids: list[str] | None = None, filters: Filters | None = None, include_start_time_state: bool = True, significant_changes_only: bool = True, minimal_response: bool = False, no_attributes: bool = False, compressed_state_format: bool = False) -> dict[str, list[State | dict[str, Any]]]: ...
|
27
|
+
def _generate_significant_states_with_session_stmt(start_time_ts: float, end_time_ts: float | None, single_metadata_id: int | None, metadata_ids: list[int], metadata_ids_in_significant_domains: list[int], significant_changes_only: bool, no_attributes: bool, include_start_time_state: bool, oldest_ts: float | None, slow_dependent_subquery: bool) -> StatementLambdaElement: ...
|
26
28
|
def get_full_significant_states_with_session(hass: HomeAssistant, session: Session, start_time: datetime, end_time: datetime | None = None, entity_ids: list[str] | None = None, filters: Filters | None = None, include_start_time_state: bool = True, significant_changes_only: bool = True, no_attributes: bool = False) -> dict[str, list[State]]: ...
|
27
29
|
def _state_changed_during_period_stmt(start_time_ts: float, end_time_ts: float | None, single_metadata_id: int, no_attributes: bool, limit: int | None, include_start_time_state: bool, run_start_ts: float | None, include_last_reported: bool) -> Select | CompoundSelect: ...
|
28
30
|
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]]: ...
|
29
31
|
def _get_last_state_changes_single_stmt(metadata_id: int) -> Select: ...
|
30
32
|
def _get_last_state_changes_multiple_stmt(number_of_states: int, metadata_id: int, include_last_reported: bool) -> Select: ...
|
31
33
|
def get_last_state_changes(hass: HomeAssistant, number_of_states: int, entity_id: str) -> dict[str, list[State]]: ...
|
32
|
-
def
|
34
|
+
def _get_start_time_state_for_entities_stmt_dependent_sub_query(epoch_time: float, metadata_ids: list[int], no_attributes: bool, include_last_changed: bool) -> Select: ...
|
35
|
+
def _get_start_time_state_for_entities_stmt_group_by(epoch_time: float, metadata_ids: list[int], no_attributes: bool, include_last_changed: bool) -> Select: ...
|
33
36
|
def _get_oldest_possible_ts(hass: HomeAssistant, utc_point_in_time: datetime) -> float | None: ...
|
34
|
-
def _get_start_time_state_stmt(epoch_time: float, single_metadata_id: int | None, metadata_ids: list[int], no_attributes: bool, include_last_changed: bool) -> Select: ...
|
37
|
+
def _get_start_time_state_stmt(epoch_time: float, single_metadata_id: int | None, metadata_ids: list[int], no_attributes: bool, include_last_changed: bool, slow_dependent_subquery: bool) -> Select: ...
|
35
38
|
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
39
|
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]]]: ...
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import dataclasses
|
2
2
|
from . import Recorder as Recorder
|
3
|
-
from .const import DOMAIN as DOMAIN, EVENT_RECORDER_5MIN_STATISTICS_GENERATED as EVENT_RECORDER_5MIN_STATISTICS_GENERATED, EVENT_RECORDER_HOURLY_STATISTICS_GENERATED as EVENT_RECORDER_HOURLY_STATISTICS_GENERATED, INTEGRATION_PLATFORM_COMPILE_STATISTICS as INTEGRATION_PLATFORM_COMPILE_STATISTICS, INTEGRATION_PLATFORM_LIST_STATISTIC_IDS as INTEGRATION_PLATFORM_LIST_STATISTIC_IDS, INTEGRATION_PLATFORM_UPDATE_STATISTICS_ISSUES as INTEGRATION_PLATFORM_UPDATE_STATISTICS_ISSUES, INTEGRATION_PLATFORM_VALIDATE_STATISTICS as INTEGRATION_PLATFORM_VALIDATE_STATISTICS, SupportedDialect as SupportedDialect
|
3
|
+
from .const import DOMAIN as DOMAIN, EVENT_RECORDER_5MIN_STATISTICS_GENERATED as EVENT_RECORDER_5MIN_STATISTICS_GENERATED, EVENT_RECORDER_HOURLY_STATISTICS_GENERATED as EVENT_RECORDER_HOURLY_STATISTICS_GENERATED, INTEGRATION_PLATFORM_COMPILE_STATISTICS as INTEGRATION_PLATFORM_COMPILE_STATISTICS, INTEGRATION_PLATFORM_LIST_STATISTIC_IDS as INTEGRATION_PLATFORM_LIST_STATISTIC_IDS, INTEGRATION_PLATFORM_UPDATE_STATISTICS_ISSUES as INTEGRATION_PLATFORM_UPDATE_STATISTICS_ISSUES, INTEGRATION_PLATFORM_VALIDATE_STATISTICS as INTEGRATION_PLATFORM_VALIDATE_STATISTICS, MAX_IDS_FOR_INDEXED_GROUP_BY as MAX_IDS_FOR_INDEXED_GROUP_BY, SupportedDialect as SupportedDialect
|
4
4
|
from .db_schema import STATISTICS_TABLES as STATISTICS_TABLES, Statistics as Statistics, StatisticsBase as StatisticsBase, StatisticsMeta as StatisticsMeta, StatisticsRuns as StatisticsRuns, StatisticsShortTerm as StatisticsShortTerm
|
5
5
|
from .models import StatisticData as StatisticData, StatisticDataTimestamp as StatisticDataTimestamp, StatisticMetaData as StatisticMetaData, StatisticResult as StatisticResult, datetime_to_timestamp_or_none as datetime_to_timestamp_or_none, process_timestamp as process_timestamp
|
6
6
|
from .util import execute as execute, execute_stmt_lambda_element as execute_stmt_lambda_element, filter_unique_constraint_integrity_error as filter_unique_constraint_integrity_error, get_instance as get_instance, retryable_database_job as retryable_database_job, session_scope as session_scope
|
@@ -13,6 +13,7 @@ from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
|
13
13
|
from homeassistant.helpers.recorder import DATA_RECORDER as DATA_RECORDER
|
14
14
|
from homeassistant.helpers.singleton import singleton as singleton
|
15
15
|
from homeassistant.helpers.typing import UNDEFINED as UNDEFINED, UndefinedType as UndefinedType
|
16
|
+
from homeassistant.util.collection import chunked_or_all as chunked_or_all
|
16
17
|
from homeassistant.util.unit_conversion import AreaConverter as AreaConverter, BaseUnitConverter as BaseUnitConverter, BloodGlucoseConcentrationConverter as BloodGlucoseConcentrationConverter, ConductivityConverter as ConductivityConverter, DataRateConverter as DataRateConverter, DistanceConverter as DistanceConverter, DurationConverter as DurationConverter, ElectricCurrentConverter as ElectricCurrentConverter, ElectricPotentialConverter as ElectricPotentialConverter, EnergyConverter as EnergyConverter, EnergyDistanceConverter as EnergyDistanceConverter, InformationConverter as InformationConverter, MassConverter as MassConverter, PowerConverter as PowerConverter, PressureConverter as PressureConverter, SpeedConverter as SpeedConverter, TemperatureConverter as TemperatureConverter, UnitlessRatioConverter as UnitlessRatioConverter, VolumeConverter as VolumeConverter, VolumeFlowRateConverter as VolumeFlowRateConverter
|
17
18
|
from sqlalchemy import Select as Select
|
18
19
|
from sqlalchemy.engine.row import Row
|
@@ -128,8 +129,9 @@ def get_last_short_term_statistics(hass: HomeAssistant, number_of_stats: int, st
|
|
128
129
|
def get_latest_short_term_statistics_by_ids(session: Session, ids: Iterable[int]) -> list[Row]: ...
|
129
130
|
def _latest_short_term_statistics_by_ids_stmt(ids: Iterable[int]) -> StatementLambdaElement: ...
|
130
131
|
def get_latest_short_term_statistics_with_session(hass: HomeAssistant, session: Session, statistic_ids: set[str], types: set[Literal['last_reset', 'max', 'mean', 'min', 'state', 'sum']], metadata: dict[str, tuple[int, StatisticMetaData]] | None = None) -> dict[str, list[StatisticsRow]]: ...
|
131
|
-
def
|
132
|
-
def
|
132
|
+
def _generate_statistics_at_time_stmt_group_by(table: type[StatisticsBase], metadata_ids: set[int], start_time_ts: float, types: set[Literal['last_reset', 'max', 'mean', 'min', 'state', 'sum']]) -> StatementLambdaElement: ...
|
133
|
+
def _generate_statistics_at_time_stmt_dependent_sub_query(table: type[StatisticsBase], metadata_ids: set[int], start_time_ts: float, types: set[Literal['last_reset', 'max', 'mean', 'min', 'state', 'sum']]) -> StatementLambdaElement: ...
|
134
|
+
def _statistics_at_time(instance: Recorder, session: Session, metadata_ids: set[int], table: type[StatisticsBase], start_time: datetime, types: set[Literal['last_reset', 'max', 'mean', 'min', 'state', 'sum']]) -> Sequence[Row] | None: ...
|
133
135
|
def _build_sum_converted_stats(db_rows: list[Row], table_duration_seconds: float, start_ts_idx: int, sum_idx: int, convert: Callable[[float | None], float | None] | Callable[[float], float]) -> list[StatisticsRow]: ...
|
134
136
|
def _build_sum_stats(db_rows: list[Row], table_duration_seconds: float, start_ts_idx: int, sum_idx: int) -> list[StatisticsRow]: ...
|
135
137
|
def _build_stats(db_rows: list[Row], table_duration_seconds: float, start_ts_idx: int, row_mapping: tuple[tuple[str, int], ...]) -> list[StatisticsRow]: ...
|
@@ -11,6 +11,8 @@ from homeassistant.core import HomeAssistant as HomeAssistant
|
|
11
11
|
from homeassistant.exceptions import HomeAssistantError as HomeAssistantError
|
12
12
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback as AddConfigEntryEntitiesCallback
|
13
13
|
|
14
|
+
_LOGGER: Incomplete
|
15
|
+
|
14
16
|
async def async_setup_entry(hass: HomeAssistant, config_entry: RoborockConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback) -> None: ...
|
15
17
|
|
16
18
|
class RoborockMap(RoborockCoordinatedEntityV1, ImageEntity):
|
@@ -18,3 +18,5 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ..
|
|
18
18
|
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: ...
|
19
19
|
@callback
|
20
20
|
def remove_stale_devices(hass: HomeAssistant, config_entry: ConfigEntry, devices: list[Device]) -> None: ...
|
21
|
+
async def async_migrate_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: ...
|
22
|
+
def migrate_config_entry_and_identifiers(hass: HomeAssistant, config_entry: ConfigEntry) -> None: ...
|
{homeassistant_stubs-2025.3.0b2.dist-info → homeassistant_stubs-2025.3.0b4.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: homeassistant-stubs
|
3
|
-
Version: 2025.3.
|
3
|
+
Version: 2025.3.0b4
|
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
|
@@ -18,7 +18,7 @@ Classifier: Topic :: Home Automation
|
|
18
18
|
Classifier: Topic :: Software Development
|
19
19
|
Classifier: Typing :: Typed
|
20
20
|
Requires-Python: <3.14,>=3.13
|
21
|
-
Requires-Dist: homeassistant==2025.3.
|
21
|
+
Requires-Dist: homeassistant==2025.3.0b4
|
22
22
|
Description-Content-Type: text/markdown
|
23
23
|
|
24
24
|
[](https://github.com/KapJI/homeassistant-stubs/actions/workflows/ci.yaml)
|
{homeassistant_stubs-2025.3.0b2.dist-info → homeassistant_stubs-2025.3.0b4.dist-info}/RECORD
RENAMED
@@ -194,7 +194,7 @@ homeassistant-stubs/components/alarm_control_panel/reproduce_state.pyi,sha256=wS
|
|
194
194
|
homeassistant-stubs/components/alarm_control_panel/significant_change.pyi,sha256=_h0aIQLLz71apR5PeiP_xPXirGREDptJo_avXc1fNwQ,408
|
195
195
|
homeassistant-stubs/components/alert/__init__.pyi,sha256=D-bDbxArT1Mq47dJg_yk3ZWie67Wk1poUjcgVID46x8,1060
|
196
196
|
homeassistant-stubs/components/alert/const.pyi,sha256=BIlouKkzZh_l0MR_On8ll-WBXrZ-G0MSDMWFkyPwilI,281
|
197
|
-
homeassistant-stubs/components/alert/entity.pyi,sha256=
|
197
|
+
homeassistant-stubs/components/alert/entity.pyi,sha256=Oe6BkQrPv45ARZD_L4YWLUoC_vGVR9S1a6W4CTaJ0lM,2467
|
198
198
|
homeassistant-stubs/components/alert/reproduce_state.pyi,sha256=DqZm_rr-hl-Q0KALVt8oF-3GpcpD9YwhRdwYMNjtY2Y,798
|
199
199
|
homeassistant-stubs/components/alexa/__init__.pyi,sha256=4216pmhm58Ncd62G1u97CHKArTw27Zex8UMRCOQyJT4,1183
|
200
200
|
homeassistant-stubs/components/alexa/auth.pyi,sha256=o3hrlviwBcY7AqCmuoZDRqwARtuXvcARxaflN7UsqrU,1522
|
@@ -571,7 +571,7 @@ homeassistant-stubs/components/button/__init__.pyi,sha256=8bR7hQfeb0yh8g1t4hFsH8
|
|
571
571
|
homeassistant-stubs/components/button/const.pyi,sha256=LRNZ2Epck8UjrpaKeoTUYJQMaBRd5JevVjtLKTBC62Q,31
|
572
572
|
homeassistant-stubs/components/button/device_action.pyi,sha256=KF3s5UTCq9Wb_qsMLwUJQFLIsi_2Ju2ZHDaYlS1v-QA,983
|
573
573
|
homeassistant-stubs/components/button/device_trigger.pyi,sha256=VAUodVs-6EBVLz2ZuUPogWlAE1gfTTViaDC3M5P6FxI,931
|
574
|
-
homeassistant-stubs/components/calendar/__init__.pyi,sha256=
|
574
|
+
homeassistant-stubs/components/calendar/__init__.pyi,sha256=kKxcCbg6vWry2R-VpLv_ay1EeNvoEM2Ew3y4L1MbSGk,7273
|
575
575
|
homeassistant-stubs/components/calendar/const.pyi,sha256=80-e2pGl6tGLaHbzuuCaUTWJsry1a9RFp3fVV1GL-Jo,861
|
576
576
|
homeassistant-stubs/components/calendar/trigger.pyi,sha256=URYZ7q-1hJhC1sTyRQ5BpISOx01QnLkL428qAFLsEtU,3112
|
577
577
|
homeassistant-stubs/components/cambridge_audio/__init__.pyi,sha256=QhkDXkQbhrYxpk88G9aJriKbwghCOU1njLjfnm_JhpY,894
|
@@ -782,7 +782,7 @@ homeassistant-stubs/components/demo/weather.pyi,sha256=seVdWm6fXq5FzhNr2Dw-imlnD
|
|
782
782
|
homeassistant-stubs/components/derivative/__init__.pyi,sha256=wS_KWMEqYq53_qz1YkYprHlAfTdRJbXZcWalETEteyU,618
|
783
783
|
homeassistant-stubs/components/derivative/config_flow.pyi,sha256=XQUReShh2Lj095W6ITAIVDdIhtQ9c_YhYPncXO_XlNk,1522
|
784
784
|
homeassistant-stubs/components/derivative/const.pyi,sha256=JsEYmAzNLdHk-ISul41ZReBOD43GD2Y6JFNTC3cdkrc,114
|
785
|
-
homeassistant-stubs/components/derivative/sensor.pyi,sha256=
|
785
|
+
homeassistant-stubs/components/derivative/sensor.pyi,sha256=JZtjcKT6OpRG2UzPAbRSfQ4yEw1yyR2Gs_JAiGKVOVE,2990
|
786
786
|
homeassistant-stubs/components/device_automation/__init__.pyi,sha256=r_kAtfKxnnK3zc_iC_HAr1qsosLxMshpiVM41N-_s2g,5254
|
787
787
|
homeassistant-stubs/components/device_automation/action.pyi,sha256=AbNNKQsOYlFDEkWewQPv5iETa8OK8-oKdPmzeI3pMeo,1321
|
788
788
|
homeassistant-stubs/components/device_automation/condition.pyi,sha256=SrCcKHlYvkIIGMS08Lnz_Wy10fj1p3zQ6GrtJzoxUj0,1203
|
@@ -1039,7 +1039,7 @@ homeassistant-stubs/components/esphome/button.pyi,sha256=pR-hgw_gTCTj0QGScNeidlD
|
|
1039
1039
|
homeassistant-stubs/components/esphome/camera.pyi,sha256=4_R1vVynz4w80pof0K4fSWgNuG6RjUM9LBxJ3xO1iOg,1208
|
1040
1040
|
homeassistant-stubs/components/esphome/climate.pyi,sha256=MyHotZ1Dy5KCUTzyYbxQDtFcHryuZ8KxuWnlsWUUbiU,4336
|
1041
1041
|
homeassistant-stubs/components/esphome/config_flow.pyi,sha256=ttfZjpHBwxrNF0sUAurIf5HIOwxeGHJUf0T2PyPVjeE,4034
|
1042
|
-
homeassistant-stubs/components/esphome/const.pyi,sha256=
|
1042
|
+
homeassistant-stubs/components/esphome/const.pyi,sha256=YbwuawBrTPYvttU04Mg3jpv1I0fdEcivTBhFU7YCIV8,401
|
1043
1043
|
homeassistant-stubs/components/esphome/coordinator.pyi,sha256=FyZqV9c1SmpjmldlanJpDOGKqbH3cOiW4b0d7zD6K5E,678
|
1044
1044
|
homeassistant-stubs/components/esphome/cover.pyi,sha256=uoHLdnLEb6Fd_nEjgtrV4qa5oyCey7RjX2RUbVkfEZc,2155
|
1045
1045
|
homeassistant-stubs/components/esphome/dashboard.pyi,sha256=LRI74hmOE7sXgqalhx9YjZzzf3fBRjEdaY6gg6Lw0DQ,1732
|
@@ -1414,7 +1414,7 @@ homeassistant-stubs/components/home_connect/button.pyi,sha256=za8DHahnqmmUj1PaKj
|
|
1414
1414
|
homeassistant-stubs/components/home_connect/common.pyi,sha256=DdXLnrGG35ZIj1RKm0hnwJ8mx5x0Id1bRkrqF5V6j5Q,1821
|
1415
1415
|
homeassistant-stubs/components/home_connect/config_flow.pyi,sha256=ByiAF8LD3ej3wG1wcxEFwqLJa0YJsRHb2W6cLdNUUiU,790
|
1416
1416
|
homeassistant-stubs/components/home_connect/const.pyi,sha256=8bxsgBaBFnRzEvhtS4V-2V-WX30OmQ99UiXT1yTcu6M,2057
|
1417
|
-
homeassistant-stubs/components/home_connect/coordinator.pyi,sha256=
|
1417
|
+
homeassistant-stubs/components/home_connect/coordinator.pyi,sha256=Yf9UGmNiFe4a-e3UYWfMSwYX49cvAFUa8JHC4j2ks0Q,3205
|
1418
1418
|
homeassistant-stubs/components/home_connect/diagnostics.pyi,sha256=xd5stDFXPm86S-CJNctSEzLbByNTM253HDD34lifBHI,773
|
1419
1419
|
homeassistant-stubs/components/home_connect/entity.pyi,sha256=oKD9Mtb1uP4WJHo5CRYLdt8dLBpTTzeKhvJeZnVhY4k,1753
|
1420
1420
|
homeassistant-stubs/components/home_connect/light.pyi,sha256=aUO_O9-KVDBXEPzhBHURwBXfzcEdUIGecxu_x07hVTE,2791
|
@@ -1470,7 +1470,7 @@ homeassistant-stubs/components/homee/entity.pyi,sha256=J1Ptb-ZhPyOWORzsI3DKrbK8W
|
|
1470
1470
|
homeassistant-stubs/components/homee/helpers.pyi,sha256=UbrbjMWJKHCmDOqc_OJ3oUonExbkQ1UhYOdtmAO3pzM,160
|
1471
1471
|
homeassistant-stubs/components/homee/light.pyi,sha256=4L7OW3FwGvZTyPTWht0RmeFNR3K9Mh64mpklTwedfIE,2510
|
1472
1472
|
homeassistant-stubs/components/homee/number.pyi,sha256=wBRbtElOp2T_oK6w16C9tll-r-YdSYK1yz4p-5CFo-8,1424
|
1473
|
-
homeassistant-stubs/components/homee/sensor.pyi,sha256=
|
1473
|
+
homeassistant-stubs/components/homee/sensor.pyi,sha256=6ORhnbXEsEgmbBqRpSFX24ZrGcRZPaXjesH9uGpNDKs,2999
|
1474
1474
|
homeassistant-stubs/components/homee/switch.pyi,sha256=f1V-ld9Ve1jZzAhZAo5z6FWHERYnnRpMrmo4NdDVgow,1931
|
1475
1475
|
homeassistant-stubs/components/homee/valve.pyi,sha256=PCzNaMmu9rJn8Pyj0Ys11CjM6c5EZOy-SH7qdcMmWhs,1343
|
1476
1476
|
homeassistant-stubs/components/homekit/__init__.pyi,sha256=UQzSUJZV4iGo0NsJp_CqMiiVISBM_HYRRjOYIl1V0Jc,10747
|
@@ -2245,7 +2245,7 @@ homeassistant-stubs/components/mqtt/light/schema.pyi,sha256=uWMGNFfSJQ7x4bYFxOVL
|
|
2245
2245
|
homeassistant-stubs/components/mqtt/light/schema_basic.pyi,sha256=SRHNft9C92nFbDkbDkKHG0YHqsX9csOJXDesGfe2ECs,7021
|
2246
2246
|
homeassistant-stubs/components/mqtt/light/schema_json.pyi,sha256=pJE78Nxv5jQRIyimf9GBEmziHv0jpay3fS0eqOykUlI,4724
|
2247
2247
|
homeassistant-stubs/components/mqtt/light/schema_template.pyi,sha256=JfZ9G9eXTQCOS6D2AciIyrnQFLDEn-yWKsP6CJAuN6k,3918
|
2248
|
-
homeassistant-stubs/components/music_assistant/__init__.pyi,sha256=
|
2248
|
+
homeassistant-stubs/components/music_assistant/__init__.pyi,sha256=ZpNo96CqBU-KbvnetFYxK85m5jkHhSbD-rbfeTNqZmA,1945
|
2249
2249
|
homeassistant-stubs/components/music_assistant/actions.pyi,sha256=NHEKTK-bOD54f7FDOPh_PnFinvXrHsfN26QNDANryds,2038
|
2250
2250
|
homeassistant-stubs/components/music_assistant/config_flow.pyi,sha256=0Ocyn_KzD_tWkm6B5PI7zjzI2O34uc1YfwalOqKdZ8c,1210
|
2251
2251
|
homeassistant-stubs/components/music_assistant/const.pyi,sha256=AuuFGZtZo5YjZJU3HLfkJULV0f7SeppY90T_liCC-m8,1266
|
@@ -2756,7 +2756,7 @@ homeassistant-stubs/components/recollect_waste/util.pyi,sha256=OEW6MgROjiByGa1RU
|
|
2756
2756
|
homeassistant-stubs/components/recorder/__init__.pyi,sha256=QSklP5GgFAy1-M1jNI4jMDrv36ZN_L78PAB0lylJGPA,2561
|
2757
2757
|
homeassistant-stubs/components/recorder/backup.pyi,sha256=vbFPAKajSeGAOkipFH2OGQjJ3z2ZkeptHw6TYnjnyFg,449
|
2758
2758
|
homeassistant-stubs/components/recorder/basic_websocket_api.pyi,sha256=b-huezDWKyZxN3NxVnPdjULWqg6fgJN4X1Rot_qLThg,479
|
2759
|
-
homeassistant-stubs/components/recorder/const.pyi,sha256=
|
2759
|
+
homeassistant-stubs/components/recorder/const.pyi,sha256=4_66ws41Lyk-ueYWmHCSjoKXLlLBTxQ13jI96MD_1C0,1533
|
2760
2760
|
homeassistant-stubs/components/recorder/core.pyi,sha256=vknUt_TwIXLwGr-oXWA1sVzwA7Bue8bJvkxV6i7jsKQ,12963
|
2761
2761
|
homeassistant-stubs/components/recorder/db_schema.pyi,sha256=jSeG6ehxD9HFQSJIPerYr1Z9iwVpzDZAY5mdVFSdoYU,11089
|
2762
2762
|
homeassistant-stubs/components/recorder/entity_registry.pyi,sha256=gTw3SQO5i6BBOCVjvtczIbZA3n1xkgO4tpC_qI5JuuM,588
|
@@ -2768,7 +2768,7 @@ homeassistant-stubs/components/recorder/purge.pyi,sha256=rFgTAV4Un0h6OP7FdKTOa6e
|
|
2768
2768
|
homeassistant-stubs/components/recorder/queries.pyi,sha256=185rzuArHlphbVOiLbOszfTLTNtER-CAoykwrs9T3ig,4904
|
2769
2769
|
homeassistant-stubs/components/recorder/repack.pyi,sha256=uT-A8NGsSHYz1fQo2pVBFVRzp0z0GhMiwN5Ydl4bUN4,247
|
2770
2770
|
homeassistant-stubs/components/recorder/services.pyi,sha256=FWjWbqHuPUkyWuocRu9HWFBgsjqhB-lcees-Tdn7ZpQ,1479
|
2771
|
-
homeassistant-stubs/components/recorder/statistics.pyi,sha256=
|
2771
|
+
homeassistant-stubs/components/recorder/statistics.pyi,sha256=EHUT8QEdoir7NyKsXe581UadqEV4ToB0XtN4gNviXzc,18249
|
2772
2772
|
homeassistant-stubs/components/recorder/tasks.pyi,sha256=W3HZdHnVReKOF7zdIPKv9tfO1LqfJeLnefuVEW3a11Q,4425
|
2773
2773
|
homeassistant-stubs/components/recorder/util.pyi,sha256=rsXcVF4ZyeZibo1_J2hr_kdkfK9vYmfqIwwy1VvH1zQ,6054
|
2774
2774
|
homeassistant-stubs/components/recorder/websocket_api.pyi,sha256=AMFFlvyDNl54d_KzEkgMqdaAoUDncQY0r6Yt9VkCogQ,5146
|
@@ -2784,10 +2784,10 @@ homeassistant-stubs/components/recorder/auto_repairs/statistics/schema.pyi,sha25
|
|
2784
2784
|
homeassistant-stubs/components/recorder/history/__init__.pyi,sha256=Tibqdb5DGrgUDIZNSTvc2pUrGoi7243DD1cBQ45LxZI,2102
|
2785
2785
|
homeassistant-stubs/components/recorder/history/const.pyi,sha256=QiVq0ILuLWh_v0c_ZAhhaJuS_a2B4yKXQHgy97r81rs,212
|
2786
2786
|
homeassistant-stubs/components/recorder/history/legacy.pyi,sha256=HPYv2HlTud1bEeMKXw7cxHR5TV6XMjSyfNcWt5dyurE,5065
|
2787
|
-
homeassistant-stubs/components/recorder/history/modern.pyi,sha256=
|
2787
|
+
homeassistant-stubs/components/recorder/history/modern.pyi,sha256=VMdYiOv5BYiP2x45yu0W64DjBsJJC0Q4xTc5NPbFn1Q,6000
|
2788
2788
|
homeassistant-stubs/components/recorder/models/__init__.pyi,sha256=CUFfhF4KMdIayXSUuLXww7U40t5DBCUaf1Nr_2Lvfmw,1790
|
2789
2789
|
homeassistant-stubs/components/recorder/models/context.pyi,sha256=ozPnonl9i-pXBokFkAq5QTEtsxj8Yfb7M2M444kyFRI,394
|
2790
|
-
homeassistant-stubs/components/recorder/models/database.pyi,sha256=
|
2790
|
+
homeassistant-stubs/components/recorder/models/database.pyi,sha256=nk01Caz5DUwcchxJnjCqmxEL5LCW7wFGnnCqiu5K_iM,450
|
2791
2791
|
homeassistant-stubs/components/recorder/models/event.pyi,sha256=PkrZuasEFfqgrzQ-XUJWVSvXoha0p1FCLW107b1h8V0,203
|
2792
2792
|
homeassistant-stubs/components/recorder/models/legacy.pyi,sha256=oeZM01Nhe9QA3JNdKjuvOWBhAh_ux0xjwmT0Be-Dpkk,2101
|
2793
2793
|
homeassistant-stubs/components/recorder/models/state.pyi,sha256=gauJ_Xy_maKnVAMTk6XU1BEh6xTMLwp6AxVFoMQKHp8,2038
|
@@ -2928,7 +2928,7 @@ homeassistant-stubs/components/roborock/const.pyi,sha256=SAstjD3OGuxxKmVH-bRpRwT
|
|
2928
2928
|
homeassistant-stubs/components/roborock/coordinator.pyi,sha256=wrmdRlgZOhvBtdLqp30zhBM2I_6FRvMVsEdqJwqvuV4,4095
|
2929
2929
|
homeassistant-stubs/components/roborock/diagnostics.pyi,sha256=-3WvDcLI0Qv0p6P9R8eSQZtgFZll5d9gKTEDBx6RmEA,522
|
2930
2930
|
homeassistant-stubs/components/roborock/entity.pyi,sha256=O5kGsR8u9oDJJD4XrGeIz_KvGzToTzqXZHZtW--EFQo,3083
|
2931
|
-
homeassistant-stubs/components/roborock/image.pyi,sha256=
|
2931
|
+
homeassistant-stubs/components/roborock/image.pyi,sha256=qH5oa9LOKNWg84P7IkPSYlR_wtiHFXyqTgE5VFSynOc,2034
|
2932
2932
|
homeassistant-stubs/components/roborock/models.pyi,sha256=JafSkeURg1toz6HiSKYY2U68yeX93xxTccWNIy_7WRo,700
|
2933
2933
|
homeassistant-stubs/components/roborock/number.pyi,sha256=_WIhENoXQxL2JPvUH3kQnPLUXRxWsL2cN7jpsA6TN-c,1809
|
2934
2934
|
homeassistant-stubs/components/roborock/roborock_storage.pyi,sha256=FsdJgkm0Nut_y3RSlYjNU0MRxRXKJ0sNjStE9AMecjk,946
|
@@ -3542,7 +3542,7 @@ homeassistant-stubs/components/tractive/diagnostics.pyi,sha256=5ptVNUawOfw2KuGs6
|
|
3542
3542
|
homeassistant-stubs/components/tractive/entity.pyi,sha256=0YiGkyy3yMBGcYUpcJthCXx6Y1kcBRMvQgfLyVyoU34,1054
|
3543
3543
|
homeassistant-stubs/components/tractive/sensor.pyi,sha256=EuhV1KJeyW8xFml_UND-7EDVGhIFtD4D7e5L-ZTYMJg,2322
|
3544
3544
|
homeassistant-stubs/components/tractive/switch.pyi,sha256=UI4Q-uLoqWZzmpAvuMg2VnffJJFtszhXYRcu9UkKaf8,2046
|
3545
|
-
homeassistant-stubs/components/tradfri/__init__.pyi,sha256=
|
3545
|
+
homeassistant-stubs/components/tradfri/__init__.pyi,sha256=59izwUdciToHIP64YhmKxE8uTTANT7Xaz_YyFNrsvF0,1629
|
3546
3546
|
homeassistant-stubs/components/tradfri/config_flow.pyi,sha256=URutEsGK-J98lpGDHo4t3y2FOQCXRNnQZDQ63jp2gL8,1398
|
3547
3547
|
homeassistant-stubs/components/tradfri/const.pyi,sha256=rfCBf7j9UwiaXEKUgILSqKPQIx5rUpRzawztNAY3dtk,184
|
3548
3548
|
homeassistant-stubs/components/tradfri/coordinator.pyi,sha256=D8vcGZfq4R8dD8TwQEsgDj1yUOnPPNv5qg7e5X-WjPA,1256
|
@@ -4080,7 +4080,7 @@ homeassistant-stubs/util/yaml/dumper.pyi,sha256=uQjW0KuME-gXVWgYJLNLoRDwDzVhhhgg
|
|
4080
4080
|
homeassistant-stubs/util/yaml/input.pyi,sha256=wuxpKYTXZL4MujFhqjHnRLv4VPYY6QPYd-Zji-Lz9Mo,383
|
4081
4081
|
homeassistant-stubs/util/yaml/loader.pyi,sha256=9MJS3AZNCemqAEU41KVJox1f16OceP64SNXE1-Z37kU,4117
|
4082
4082
|
homeassistant-stubs/util/yaml/objects.pyi,sha256=EmJiT8WnVUHa5dkbYzXtWzu5mhO1YG5bBnEAIF0XLAU,665
|
4083
|
-
homeassistant_stubs-2025.3.
|
4084
|
-
homeassistant_stubs-2025.3.
|
4085
|
-
homeassistant_stubs-2025.3.
|
4086
|
-
homeassistant_stubs-2025.3.
|
4083
|
+
homeassistant_stubs-2025.3.0b4.dist-info/METADATA,sha256=7q28WX1o7-ckOS7vApw_eY2lgbQ4X81ogG-f_obAPDg,2956
|
4084
|
+
homeassistant_stubs-2025.3.0b4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
4085
|
+
homeassistant_stubs-2025.3.0b4.dist-info/licenses/LICENSE,sha256=_kHFjg-MAmJ-lXc7HiEjUzD3vZutVYKUVZZpAWcIuqo,1075
|
4086
|
+
homeassistant_stubs-2025.3.0b4.dist-info/RECORD,,
|
File without changes
|
File without changes
|