mirror of
https://github.com/esphome/esphome.git
synced 2025-07-31 07:36:35 +00:00
cleanup
This commit is contained in:
parent
b3abebfb37
commit
bc6b1ffc14
@ -1367,20 +1367,6 @@ def build_message_type(
|
|||||||
needs_decode = source in (SOURCE_BOTH, SOURCE_CLIENT)
|
needs_decode = source in (SOURCE_BOTH, SOURCE_CLIENT)
|
||||||
needs_encode = source in (SOURCE_BOTH, SOURCE_SERVER)
|
needs_encode = source in (SOURCE_BOTH, SOURCE_SERVER)
|
||||||
|
|
||||||
# Validate that fixed_array_size is only used in encode-only messages
|
|
||||||
if needs_decode:
|
|
||||||
for field in desc.field:
|
|
||||||
if (
|
|
||||||
field.label == 3
|
|
||||||
and get_field_opt(field, pb.fixed_array_size) is not None
|
|
||||||
):
|
|
||||||
raise ValueError(
|
|
||||||
f"Message '{desc.name}' uses fixed_array_size on field '{field.name}' "
|
|
||||||
f"but has source={['SOURCE_BOTH', 'SOURCE_SERVER', 'SOURCE_CLIENT'][source]}. "
|
|
||||||
f"Fixed arrays are only supported for SOURCE_SERVER (encode-only) messages "
|
|
||||||
f"since we cannot trust or control the number of items received from clients."
|
|
||||||
)
|
|
||||||
|
|
||||||
# Add MESSAGE_TYPE method if this is a service message
|
# Add MESSAGE_TYPE method if this is a service message
|
||||||
if message_id is not None:
|
if message_id is not None:
|
||||||
# Validate that message_id fits in uint8_t
|
# Validate that message_id fits in uint8_t
|
||||||
@ -1416,6 +1402,19 @@ def build_message_type(
|
|||||||
if field.options.deprecated:
|
if field.options.deprecated:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
# Validate that fixed_array_size is only used in encode-only messages
|
||||||
|
if (
|
||||||
|
needs_decode
|
||||||
|
and field.label == 3
|
||||||
|
and get_field_opt(field, pb.fixed_array_size) is not None
|
||||||
|
):
|
||||||
|
raise ValueError(
|
||||||
|
f"Message '{desc.name}' uses fixed_array_size on field '{field.name}' "
|
||||||
|
f"but has source={SOURCE_NAMES[source]}. "
|
||||||
|
f"Fixed arrays are only supported for SOURCE_SERVER (encode-only) messages "
|
||||||
|
f"since we cannot trust or control the number of items received from clients."
|
||||||
|
)
|
||||||
|
|
||||||
ti = create_field_type_info(field, needs_decode, needs_encode)
|
ti = create_field_type_info(field, needs_decode, needs_encode)
|
||||||
|
|
||||||
# Skip field declarations for fields that are in the base class
|
# Skip field declarations for fields that are in the base class
|
||||||
@ -1605,6 +1604,12 @@ SOURCE_BOTH = 0
|
|||||||
SOURCE_SERVER = 1
|
SOURCE_SERVER = 1
|
||||||
SOURCE_CLIENT = 2
|
SOURCE_CLIENT = 2
|
||||||
|
|
||||||
|
SOURCE_NAMES = {
|
||||||
|
SOURCE_BOTH: "SOURCE_BOTH",
|
||||||
|
SOURCE_SERVER: "SOURCE_SERVER",
|
||||||
|
SOURCE_CLIENT: "SOURCE_CLIENT",
|
||||||
|
}
|
||||||
|
|
||||||
RECEIVE_CASES: dict[int, tuple[str, str | None]] = {}
|
RECEIVE_CASES: dict[int, tuple[str, str | None]] = {}
|
||||||
|
|
||||||
ifdefs: dict[str, str] = {}
|
ifdefs: dict[str, str] = {}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user