Update voluptuous to 0.15.2 (#120631)

* Update voluptuous to 0.15.1

* Fix typing issues

* Add type ignores for json result type

* Update voluptuous to 0.15.2

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
This commit is contained in:
Marc Mueller 2024-07-02 21:57:09 +02:00 committed by GitHub
parent 0d0ca22103
commit 0e52d149e4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 13 additions and 15 deletions

View file

@ -215,7 +215,7 @@ def _prepare_result_json(
data = result.copy() data = result.copy()
if (schema := data["data_schema"]) is None: if (schema := data["data_schema"]) is None:
data["data_schema"] = [] data["data_schema"] = [] # type: ignore[typeddict-item] # json result type
else: else:
data["data_schema"] = voluptuous_serialize.convert(schema) data["data_schema"] = voluptuous_serialize.convert(schema)

View file

@ -156,7 +156,7 @@ def _prepare_result_json(
data = result.copy() data = result.copy()
if (schema := data["data_schema"]) is None: if (schema := data["data_schema"]) is None:
data["data_schema"] = [] data["data_schema"] = [] # type: ignore[typeddict-item] # json result type
else: else:
data["data_schema"] = voluptuous_serialize.convert(schema) data["data_schema"] = voluptuous_serialize.convert(schema)

View file

@ -5,7 +5,7 @@ from __future__ import annotations
from collections.abc import Mapping from collections.abc import Mapping
from contextlib import suppress from contextlib import suppress
from enum import StrEnum from enum import StrEnum
from typing import Any, cast from typing import Any
import voluptuous as vol import voluptuous as vol
from voluptuous.humanize import humanize_error from voluptuous.humanize import humanize_error
@ -90,7 +90,7 @@ async def _async_validate_config_item( # noqa: C901
def _humanize(err: Exception, config: ConfigType) -> str: def _humanize(err: Exception, config: ConfigType) -> str:
"""Humanize vol.Invalid, stringify other exceptions.""" """Humanize vol.Invalid, stringify other exceptions."""
if isinstance(err, vol.Invalid): if isinstance(err, vol.Invalid):
return cast(str, humanize_error(config, err)) return humanize_error(config, err)
return str(err) return str(err)
def _log_invalid_automation( def _log_invalid_automation(

View file

@ -145,7 +145,7 @@ def websocket_command(
def decorate(func: const.WebSocketCommandHandler) -> const.WebSocketCommandHandler: def decorate(func: const.WebSocketCommandHandler) -> const.WebSocketCommandHandler:
"""Decorate ws command function.""" """Decorate ws command function."""
if is_dict and len(schema) == 1: # type only empty schema if is_dict and len(schema) == 1: # type: ignore[arg-type] # type only empty schema
func._ws_schema = False # type: ignore[attr-defined] # noqa: SLF001 func._ws_schema = False # type: ignore[attr-defined] # noqa: SLF001
elif is_dict: elif is_dict:
func._ws_schema = messages.BASE_COMMAND_MESSAGE_SCHEMA.extend(schema) # type: ignore[attr-defined] # noqa: SLF001 func._ws_schema = messages.BASE_COMMAND_MESSAGE_SCHEMA.extend(schema) # type: ignore[attr-defined] # noqa: SLF001

View file

@ -947,7 +947,7 @@ def _log_pkg_error(
def _identify_config_schema(module: ComponentProtocol) -> str | None: def _identify_config_schema(module: ComponentProtocol) -> str | None:
"""Extract the schema and identify list or dict based.""" """Extract the schema and identify list or dict based."""
if not isinstance(module.CONFIG_SCHEMA, vol.Schema): if not isinstance(module.CONFIG_SCHEMA, vol.Schema):
return None return None # type: ignore[unreachable]
schema = module.CONFIG_SCHEMA.schema schema = module.CONFIG_SCHEMA.schema

View file

@ -112,9 +112,7 @@ class UnknownStep(FlowError):
"""Unknown step specified.""" """Unknown step specified."""
# ignore misc is required as vol.Invalid is not typed class InvalidData(vol.Invalid):
# mypy error: Class cannot subclass "Invalid" (has type "Any")
class InvalidData(vol.Invalid): # type: ignore[misc]
"""Invalid data provided.""" """Invalid data provided."""
def __init__( def __init__(
@ -386,7 +384,7 @@ class FlowManager(abc.ABC, Generic[_FlowResultT, _HandlerT]):
) is not None and user_input is not None: ) is not None and user_input is not None:
data_schema = cast(vol.Schema, data_schema) data_schema = cast(vol.Schema, data_schema)
try: try:
user_input = data_schema(user_input) # type: ignore[operator] user_input = data_schema(user_input)
except vol.Invalid as ex: except vol.Invalid as ex:
raised_errors = [ex] raised_errors = [ex]
if isinstance(ex, vol.MultipleInvalid): if isinstance(ex, vol.MultipleInvalid):

View file

@ -47,7 +47,7 @@ class _BaseFlowManagerView(HomeAssistantView, Generic[_FlowManagerT]):
data = result.copy() data = result.copy()
if (schema := data["data_schema"]) is None: if (schema := data["data_schema"]) is None:
data["data_schema"] = [] data["data_schema"] = [] # type: ignore[typeddict-item] # json result type
else: else:
data["data_schema"] = voluptuous_serialize.convert( data["data_schema"] = voluptuous_serialize.convert(
schema, custom_serializer=cv.custom_serializer schema, custom_serializer=cv.custom_serializer

View file

@ -60,7 +60,7 @@ ulid-transform==0.9.0
urllib3>=1.26.5,<2 urllib3>=1.26.5,<2
voluptuous-openapi==0.0.4 voluptuous-openapi==0.0.4
voluptuous-serialize==2.6.0 voluptuous-serialize==2.6.0
voluptuous==0.13.1 voluptuous==0.15.2
webrtc-noise-gain==1.2.3 webrtc-noise-gain==1.2.3
yarl==1.9.4 yarl==1.9.4
zeroconf==0.132.2 zeroconf==0.132.2

View file

@ -29,7 +29,7 @@ class NodeStrClass(str):
def __voluptuous_compile__(self, schema: vol.Schema) -> Any: def __voluptuous_compile__(self, schema: vol.Schema) -> Any:
"""Needed because vol.Schema.compile does not handle str subclasses.""" """Needed because vol.Schema.compile does not handle str subclasses."""
return _compile_scalar(self) return _compile_scalar(self) # type: ignore[no-untyped-call]
class NodeDictClass(dict): class NodeDictClass(dict):

View file

@ -67,7 +67,7 @@ dependencies = [
# Temporary setting an upper bound, to prevent compat issues with urllib3>=2 # Temporary setting an upper bound, to prevent compat issues with urllib3>=2
# https://github.com/home-assistant/core/issues/97248 # https://github.com/home-assistant/core/issues/97248
"urllib3>=1.26.5,<2", "urllib3>=1.26.5,<2",
"voluptuous==0.13.1", "voluptuous==0.15.2",
"voluptuous-serialize==2.6.0", "voluptuous-serialize==2.6.0",
"voluptuous-openapi==0.0.4", "voluptuous-openapi==0.0.4",
"yarl==1.9.4", "yarl==1.9.4",

View file

@ -39,7 +39,7 @@ SQLAlchemy==2.0.31
typing-extensions>=4.12.2,<5.0 typing-extensions>=4.12.2,<5.0
ulid-transform==0.9.0 ulid-transform==0.9.0
urllib3>=1.26.5,<2 urllib3>=1.26.5,<2
voluptuous==0.13.1 voluptuous==0.15.2
voluptuous-serialize==2.6.0 voluptuous-serialize==2.6.0
voluptuous-openapi==0.0.4 voluptuous-openapi==0.0.4
yarl==1.9.4 yarl==1.9.4