From bac6f5baaf8cb149483a19af2c9db79cff536891 Mon Sep 17 00:00:00 2001 From: Josh Wu Date: Fri, 21 Feb 2025 16:00:18 +0800 Subject: [PATCH] Fix mutable default values --- bumble/device.py | 15 ++++++++++----- bumble/host.py | 3 ++- bumble/profiles/ascs.py | 3 ++- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/bumble/device.py b/bumble/device.py index ed8b8214..35d3d4f6 100644 --- a/bumble/device.py +++ b/bumble/device.py @@ -1569,8 +1569,8 @@ class Connection(CompositeEventEmitter): gatt_client: gatt_client.Client pairing_peer_io_capability: Optional[int] pairing_peer_authentication_requirements: Optional[int] - cs_configs: dict[int, ChannelSoundingConfig] = {} # Config ID to Configuration - cs_procedures: dict[int, ChannelSoundingProcedure] = {} # Config ID to Procedures + cs_configs: dict[int, ChannelSoundingConfig] # Config ID to Configuration + cs_procedures: dict[int, ChannelSoundingProcedure] # Config ID to Procedures @composite_listener class Listener: @@ -1637,6 +1637,8 @@ class Connection(CompositeEventEmitter): self.pairing_peer_io_capability = None self.pairing_peer_authentication_requirements = None self.peer_le_features = None + self.cs_configs = {} + self.cs_procedures = {} # [Classic only] @classmethod @@ -2046,9 +2048,9 @@ class Device(CompositeEventEmitter): legacy_advertiser: Optional[LegacyAdvertiser] sco_links: Dict[int, ScoLink] cis_links: Dict[int, CisLink] - bigs = dict[int, Big]() - bis_links = dict[int, BisLink]() - big_syncs = dict[int, BigSync]() + bigs: dict[int, Big] + bis_links: dict[int, BisLink] + big_syncs: dict[int, BigSync] _pending_cis: Dict[int, tuple[int, int]] gatt_service: gatt_service.GenericAttributeProfileService | None = None @@ -2141,6 +2143,9 @@ class Device(CompositeEventEmitter): self.sco_links = {} # ScoLinks, by connection handle (BR/EDR only) self.cis_links = {} # CisLinks, by connection handle (LE only) self._pending_cis = {} # (CIS_ID, CIG_ID), by CIS_handle + self.bigs = {} + self.bis_links = {} + self.big_syncs = {} self.classic_enabled = False self.inquiry_response = None self.address_resolver = None diff --git a/bumble/host.py b/bumble/host.py index 84d7aeb2..d3a10b6d 100644 --- a/bumble/host.py +++ b/bumble/host.py @@ -235,7 +235,7 @@ class Host(AbortableEventEmitter): cis_links: Dict[int, IsoLink] bis_links: Dict[int, IsoLink] sco_links: Dict[int, ScoLink] - bigs: dict[int, set[int]] = {} # BIG Handle to BIS Handles + bigs: dict[int, set[int]] acl_packet_queue: Optional[DataPacketQueue] = None le_acl_packet_queue: Optional[DataPacketQueue] = None iso_packet_queue: Optional[DataPacketQueue] = None @@ -259,6 +259,7 @@ class Host(AbortableEventEmitter): self.cis_links = {} # CIS links, by connection handle self.bis_links = {} # BIS links, by connection handle self.sco_links = {} # SCO links, by connection handle + self.bigs = {} # BIG Handle to BIS Handles self.pending_command = None self.pending_response: Optional[asyncio.Future[Any]] = None self.number_of_supported_advertising_sets = 0 diff --git a/bumble/profiles/ascs.py b/bumble/profiles/ascs.py index 63bf2c3d..087d0fe7 100644 --- a/bumble/profiles/ascs.py +++ b/bumble/profiles/ascs.py @@ -301,7 +301,7 @@ class AseStateMachine(gatt.Characteristic): presentation_delay = 0 # Additional parameters in ENABLING, STREAMING, DISABLING State - metadata = le_audio.Metadata() + metadata: le_audio.Metadata def __init__( self, @@ -313,6 +313,7 @@ class AseStateMachine(gatt.Characteristic): self.ase_id = ase_id self._state = AseStateMachine.State.IDLE self.role = role + self.metadata = le_audio.Metadata() uuid = ( gatt.GATT_SINK_ASE_CHARACTERISTIC