bumble 0.0.200__py3-none-any.whl → 0.0.202__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.
Files changed (43) hide show
  1. bumble/_version.py +2 -2
  2. bumble/apps/bench.py +138 -93
  3. bumble/apps/rfcomm_bridge.py +10 -1
  4. bumble/att.py +1 -1
  5. bumble/avc.py +2 -0
  6. bumble/gatt_client.py +6 -0
  7. bumble/l2cap.py +1 -0
  8. bumble/link.py +2 -0
  9. bumble/profiles/bap.py +3 -0
  10. bumble/sdp.py +2 -0
  11. bumble/smp.py +1 -1
  12. bumble/transport/android_netsim.py +28 -11
  13. bumble/transport/common.py +4 -2
  14. bumble/transport/grpc_protobuf/netsim/__init__.py +0 -0
  15. bumble/transport/grpc_protobuf/{common_pb2.py → netsim/common_pb2.py} +9 -8
  16. bumble/transport/grpc_protobuf/{common_pb2.pyi → netsim/common_pb2.pyi} +11 -5
  17. bumble/transport/grpc_protobuf/netsim/hci_packet_pb2.py +29 -0
  18. bumble/transport/grpc_protobuf/{hci_packet_pb2.pyi → netsim/hci_packet_pb2.pyi} +13 -7
  19. bumble/transport/grpc_protobuf/netsim/model_pb2.py +63 -0
  20. bumble/transport/grpc_protobuf/netsim/model_pb2.pyi +238 -0
  21. bumble/transport/grpc_protobuf/netsim/packet_streamer_pb2.py +32 -0
  22. bumble/transport/grpc_protobuf/{packet_streamer_pb2.pyi → netsim/packet_streamer_pb2.pyi} +6 -6
  23. bumble/transport/grpc_protobuf/{packet_streamer_pb2_grpc.py → netsim/packet_streamer_pb2_grpc.py} +7 -7
  24. bumble/transport/grpc_protobuf/netsim/startup_pb2.py +41 -0
  25. bumble/transport/grpc_protobuf/netsim/startup_pb2.pyi +76 -0
  26. bumble/transport/grpc_protobuf/netsim/startup_pb2_grpc.py +4 -0
  27. bumble/transport/grpc_protobuf/rootcanal/__init__.py +0 -0
  28. bumble/transport/grpc_protobuf/rootcanal/configuration_pb2.py +39 -0
  29. bumble/transport/grpc_protobuf/rootcanal/configuration_pb2.pyi +78 -0
  30. bumble/transport/grpc_protobuf/rootcanal/configuration_pb2_grpc.py +4 -0
  31. {bumble-0.0.200.dist-info → bumble-0.0.202.dist-info}/METADATA +4 -3
  32. {bumble-0.0.200.dist-info → bumble-0.0.202.dist-info}/RECORD +39 -31
  33. {bumble-0.0.200.dist-info → bumble-0.0.202.dist-info}/WHEEL +1 -1
  34. bumble/transport/grpc_protobuf/hci_packet_pb2.py +0 -28
  35. bumble/transport/grpc_protobuf/packet_streamer_pb2.py +0 -31
  36. bumble/transport/grpc_protobuf/startup_pb2.py +0 -32
  37. bumble/transport/grpc_protobuf/startup_pb2.pyi +0 -46
  38. /bumble/transport/grpc_protobuf/{common_pb2_grpc.py → netsim/common_pb2_grpc.py} +0 -0
  39. /bumble/transport/grpc_protobuf/{hci_packet_pb2_grpc.py → netsim/hci_packet_pb2_grpc.py} +0 -0
  40. /bumble/transport/grpc_protobuf/{startup_pb2_grpc.py → netsim/model_pb2_grpc.py} +0 -0
  41. {bumble-0.0.200.dist-info → bumble-0.0.202.dist-info}/LICENSE +0 -0
  42. {bumble-0.0.200.dist-info → bumble-0.0.202.dist-info}/entry_points.txt +0 -0
  43. {bumble-0.0.200.dist-info → bumble-0.0.202.dist-info}/top_level.txt +0 -0
@@ -2,7 +2,7 @@
2
2
  """Client and server classes corresponding to protobuf-defined services."""
3
3
  import grpc
4
4
 
5
- from . import packet_streamer_pb2 as packet__streamer__pb2
5
+ from bumble.transport.grpc_protobuf.netsim import packet_streamer_pb2 as netsim_dot_packet__streamer__pb2
6
6
 
7
7
 
8
8
  class PacketStreamerStub(object):
@@ -30,8 +30,8 @@ class PacketStreamerStub(object):
30
30
  """
31
31
  self.StreamPackets = channel.stream_stream(
32
32
  '/netsim.packet.PacketStreamer/StreamPackets',
33
- request_serializer=packet__streamer__pb2.PacketRequest.SerializeToString,
34
- response_deserializer=packet__streamer__pb2.PacketResponse.FromString,
33
+ request_serializer=netsim_dot_packet__streamer__pb2.PacketRequest.SerializeToString,
34
+ response_deserializer=netsim_dot_packet__streamer__pb2.PacketResponse.FromString,
35
35
  )
36
36
 
37
37
 
@@ -64,8 +64,8 @@ def add_PacketStreamerServicer_to_server(servicer, server):
64
64
  rpc_method_handlers = {
65
65
  'StreamPackets': grpc.stream_stream_rpc_method_handler(
66
66
  servicer.StreamPackets,
67
- request_deserializer=packet__streamer__pb2.PacketRequest.FromString,
68
- response_serializer=packet__streamer__pb2.PacketResponse.SerializeToString,
67
+ request_deserializer=netsim_dot_packet__streamer__pb2.PacketRequest.FromString,
68
+ response_serializer=netsim_dot_packet__streamer__pb2.PacketResponse.SerializeToString,
69
69
  ),
70
70
  }
71
71
  generic_handler = grpc.method_handlers_generic_handler(
@@ -103,7 +103,7 @@ class PacketStreamer(object):
103
103
  timeout=None,
104
104
  metadata=None):
105
105
  return grpc.experimental.stream_stream(request_iterator, target, '/netsim.packet.PacketStreamer/StreamPackets',
106
- packet__streamer__pb2.PacketRequest.SerializeToString,
107
- packet__streamer__pb2.PacketResponse.FromString,
106
+ netsim_dot_packet__streamer__pb2.PacketRequest.SerializeToString,
107
+ netsim_dot_packet__streamer__pb2.PacketResponse.FromString,
108
108
  options, channel_credentials,
109
109
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -0,0 +1,41 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: netsim/startup.proto
4
+ # Protobuf Python Version: 4.25.1
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from bumble.transport.grpc_protobuf.netsim import common_pb2 as netsim_dot_common__pb2
16
+ from bumble.transport.grpc_protobuf.netsim import model_pb2 as netsim_dot_model__pb2
17
+ from bumble.transport.grpc_protobuf.rootcanal import configuration_pb2 as rootcanal_dot_configuration__pb2
18
+
19
+
20
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14netsim/startup.proto\x12\x0enetsim.startup\x1a\x13netsim/common.proto\x1a\x12netsim/model.proto\x1a\x1drootcanal/configuration.proto\"\xb4\x01\n\x0bStartupInfo\x12\x33\n\x07\x64\x65vices\x18\x01 \x03(\x0b\x32\".netsim.startup.StartupInfo.Device\x1ap\n\x06\x44\x65vice\x12\x10\n\x04name\x18\x01 \x01(\tB\x02\x18\x01\x12#\n\x05\x63hips\x18\x02 \x03(\x0b\x32\x14.netsim.startup.Chip\x12/\n\x0b\x64\x65vice_info\x18\x03 \x01(\x0b\x32\x1a.netsim.startup.DeviceInfo\"q\n\x08\x43hipInfo\x12\x10\n\x04name\x18\x01 \x01(\tB\x02\x18\x01\x12\"\n\x04\x63hip\x18\x02 \x01(\x0b\x32\x14.netsim.startup.Chip\x12/\n\x0b\x64\x65vice_info\x18\x03 \x01(\x0b\x32\x1a.netsim.startup.DeviceInfo\"\x7f\n\nDeviceInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\x12\x13\n\x0bsdk_version\x18\x04 \x01(\t\x12\x10\n\x08\x62uild_id\x18\x05 \x01(\t\x12\x0f\n\x07variant\x18\x06 \x01(\t\x12\x0c\n\x04\x61rch\x18\x07 \x01(\t\"\x9b\x02\n\x04\x43hip\x12%\n\x04kind\x18\x01 \x01(\x0e\x32\x17.netsim.common.ChipKind\x12\n\n\x02id\x18\x02 \x01(\t\x12\x14\n\x0cmanufacturer\x18\x03 \x01(\t\x12\x14\n\x0cproduct_name\x18\x04 \x01(\t\x12\r\n\x05\x66\x64_in\x18\x05 \x01(\x05\x12\x0e\n\x06\x66\x64_out\x18\x06 \x01(\x05\x12\x10\n\x08loopback\x18\x07 \x01(\x08\x12:\n\rbt_properties\x18\x08 \x01(\x0b\x32#.rootcanal.configuration.Controller\x12\x0f\n\x07\x61\x64\x64ress\x18\t \x01(\t\x12+\n\x06offset\x18\n \x01(\x0b\x32\x16.netsim.model.PositionH\x00\x88\x01\x01\x42\t\n\x07_offsetb\x06proto3')
21
+
22
+ _globals = globals()
23
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
24
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'netsim.startup_pb2', _globals)
25
+ if _descriptor._USE_C_DESCRIPTORS == False:
26
+ DESCRIPTOR._options = None
27
+ _globals['_STARTUPINFO_DEVICE'].fields_by_name['name']._options = None
28
+ _globals['_STARTUPINFO_DEVICE'].fields_by_name['name']._serialized_options = b'\030\001'
29
+ _globals['_CHIPINFO'].fields_by_name['name']._options = None
30
+ _globals['_CHIPINFO'].fields_by_name['name']._serialized_options = b'\030\001'
31
+ _globals['_STARTUPINFO']._serialized_start=113
32
+ _globals['_STARTUPINFO']._serialized_end=293
33
+ _globals['_STARTUPINFO_DEVICE']._serialized_start=181
34
+ _globals['_STARTUPINFO_DEVICE']._serialized_end=293
35
+ _globals['_CHIPINFO']._serialized_start=295
36
+ _globals['_CHIPINFO']._serialized_end=408
37
+ _globals['_DEVICEINFO']._serialized_start=410
38
+ _globals['_DEVICEINFO']._serialized_end=537
39
+ _globals['_CHIP']._serialized_start=540
40
+ _globals['_CHIP']._serialized_end=823
41
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,76 @@
1
+ from bumble.transport.grpc_protobuf.netsim import common_pb2 as _common_pb2
2
+ from bumble.transport.grpc_protobuf.netsim import model_pb2 as _model_pb2
3
+ from bumble.transport.grpc_protobuf.rootcanal import configuration_pb2 as _configuration_pb2
4
+ from google.protobuf.internal import containers as _containers
5
+ from google.protobuf import descriptor as _descriptor
6
+ from google.protobuf import message as _message
7
+ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
8
+
9
+ DESCRIPTOR: _descriptor.FileDescriptor
10
+
11
+ class StartupInfo(_message.Message):
12
+ __slots__ = ("devices",)
13
+ class Device(_message.Message):
14
+ __slots__ = ("name", "chips", "device_info")
15
+ NAME_FIELD_NUMBER: _ClassVar[int]
16
+ CHIPS_FIELD_NUMBER: _ClassVar[int]
17
+ DEVICE_INFO_FIELD_NUMBER: _ClassVar[int]
18
+ name: str
19
+ chips: _containers.RepeatedCompositeFieldContainer[Chip]
20
+ device_info: DeviceInfo
21
+ def __init__(self, name: _Optional[str] = ..., chips: _Optional[_Iterable[_Union[Chip, _Mapping]]] = ..., device_info: _Optional[_Union[DeviceInfo, _Mapping]] = ...) -> None: ...
22
+ DEVICES_FIELD_NUMBER: _ClassVar[int]
23
+ devices: _containers.RepeatedCompositeFieldContainer[StartupInfo.Device]
24
+ def __init__(self, devices: _Optional[_Iterable[_Union[StartupInfo.Device, _Mapping]]] = ...) -> None: ...
25
+
26
+ class ChipInfo(_message.Message):
27
+ __slots__ = ("name", "chip", "device_info")
28
+ NAME_FIELD_NUMBER: _ClassVar[int]
29
+ CHIP_FIELD_NUMBER: _ClassVar[int]
30
+ DEVICE_INFO_FIELD_NUMBER: _ClassVar[int]
31
+ name: str
32
+ chip: Chip
33
+ device_info: DeviceInfo
34
+ def __init__(self, name: _Optional[str] = ..., chip: _Optional[_Union[Chip, _Mapping]] = ..., device_info: _Optional[_Union[DeviceInfo, _Mapping]] = ...) -> None: ...
35
+
36
+ class DeviceInfo(_message.Message):
37
+ __slots__ = ("name", "kind", "version", "sdk_version", "build_id", "variant", "arch")
38
+ NAME_FIELD_NUMBER: _ClassVar[int]
39
+ KIND_FIELD_NUMBER: _ClassVar[int]
40
+ VERSION_FIELD_NUMBER: _ClassVar[int]
41
+ SDK_VERSION_FIELD_NUMBER: _ClassVar[int]
42
+ BUILD_ID_FIELD_NUMBER: _ClassVar[int]
43
+ VARIANT_FIELD_NUMBER: _ClassVar[int]
44
+ ARCH_FIELD_NUMBER: _ClassVar[int]
45
+ name: str
46
+ kind: str
47
+ version: str
48
+ sdk_version: str
49
+ build_id: str
50
+ variant: str
51
+ arch: str
52
+ def __init__(self, name: _Optional[str] = ..., kind: _Optional[str] = ..., version: _Optional[str] = ..., sdk_version: _Optional[str] = ..., build_id: _Optional[str] = ..., variant: _Optional[str] = ..., arch: _Optional[str] = ...) -> None: ...
53
+
54
+ class Chip(_message.Message):
55
+ __slots__ = ("kind", "id", "manufacturer", "product_name", "fd_in", "fd_out", "loopback", "bt_properties", "address", "offset")
56
+ KIND_FIELD_NUMBER: _ClassVar[int]
57
+ ID_FIELD_NUMBER: _ClassVar[int]
58
+ MANUFACTURER_FIELD_NUMBER: _ClassVar[int]
59
+ PRODUCT_NAME_FIELD_NUMBER: _ClassVar[int]
60
+ FD_IN_FIELD_NUMBER: _ClassVar[int]
61
+ FD_OUT_FIELD_NUMBER: _ClassVar[int]
62
+ LOOPBACK_FIELD_NUMBER: _ClassVar[int]
63
+ BT_PROPERTIES_FIELD_NUMBER: _ClassVar[int]
64
+ ADDRESS_FIELD_NUMBER: _ClassVar[int]
65
+ OFFSET_FIELD_NUMBER: _ClassVar[int]
66
+ kind: _common_pb2.ChipKind
67
+ id: str
68
+ manufacturer: str
69
+ product_name: str
70
+ fd_in: int
71
+ fd_out: int
72
+ loopback: bool
73
+ bt_properties: _configuration_pb2.Controller
74
+ address: str
75
+ offset: _model_pb2.Position
76
+ def __init__(self, kind: _Optional[_Union[_common_pb2.ChipKind, str]] = ..., id: _Optional[str] = ..., manufacturer: _Optional[str] = ..., product_name: _Optional[str] = ..., fd_in: _Optional[int] = ..., fd_out: _Optional[int] = ..., loopback: bool = ..., bt_properties: _Optional[_Union[_configuration_pb2.Controller, _Mapping]] = ..., address: _Optional[str] = ..., offset: _Optional[_Union[_model_pb2.Position, _Mapping]] = ...) -> None: ...
@@ -0,0 +1,4 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
File without changes
@@ -0,0 +1,39 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: rootcanal/configuration.proto
4
+ # Protobuf Python Version: 4.25.1
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+
16
+
17
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1drootcanal/configuration.proto\x12\x17rootcanal.configuration\"\xbc\x01\n\x12\x43ontrollerFeatures\x12\x1f\n\x17le_extended_advertising\x18\x01 \x01(\x08\x12\x1f\n\x17le_periodic_advertising\x18\x02 \x01(\x08\x12\x12\n\nll_privacy\x18\x03 \x01(\x08\x12\x11\n\tle_2m_phy\x18\x04 \x01(\x08\x12\x14\n\x0cle_coded_phy\x18\x05 \x01(\x08\x12\'\n\x1fle_connected_isochronous_stream\x18\x06 \x01(\x08\"\x8d\x01\n\x10\x43ontrollerQuirks\x12\x30\n(send_acl_data_before_connection_complete\x18\x01 \x01(\x08\x12\"\n\x1ahas_default_random_address\x18\x02 \x01(\x08\x12#\n\x1bhardware_error_before_reset\x18\x03 \x01(\x08\".\n\x0eVendorFeatures\x12\x0b\n\x03\x63sr\x18\x01 \x01(\x08\x12\x0f\n\x07\x61ndroid\x18\x02 \x01(\x08\"\x8a\x02\n\nController\x12\x39\n\x06preset\x18\x01 \x01(\x0e\x32).rootcanal.configuration.ControllerPreset\x12=\n\x08\x66\x65\x61tures\x18\x02 \x01(\x0b\x32+.rootcanal.configuration.ControllerFeatures\x12\x39\n\x06quirks\x18\x03 \x01(\x0b\x32).rootcanal.configuration.ControllerQuirks\x12\x0e\n\x06strict\x18\x04 \x01(\x08\x12\x37\n\x06vendor\x18\x05 \x01(\x0b\x32\'.rootcanal.configuration.VendorFeatures\"Y\n\tTcpServer\x12\x10\n\x08tcp_port\x18\x01 \x02(\x05\x12:\n\rconfiguration\x18\x02 \x01(\x0b\x32#.rootcanal.configuration.Controller\"G\n\rConfiguration\x12\x36\n\ntcp_server\x18\x01 \x03(\x0b\x32\".rootcanal.configuration.TcpServer*H\n\x10\x43ontrollerPreset\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0f\n\x0bLAIRD_BL654\x10\x01\x12\x16\n\x12\x43SR_RCK_PTS_DONGLE\x10\x02\x42\x02H\x02')
18
+
19
+ _globals = globals()
20
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
21
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'rootcanal.configuration_pb2', _globals)
22
+ if _descriptor._USE_C_DESCRIPTORS == False:
23
+ _globals['DESCRIPTOR']._options = None
24
+ _globals['DESCRIPTOR']._serialized_options = b'H\002'
25
+ _globals['_CONTROLLERPRESET']._serialized_start=874
26
+ _globals['_CONTROLLERPRESET']._serialized_end=946
27
+ _globals['_CONTROLLERFEATURES']._serialized_start=59
28
+ _globals['_CONTROLLERFEATURES']._serialized_end=247
29
+ _globals['_CONTROLLERQUIRKS']._serialized_start=250
30
+ _globals['_CONTROLLERQUIRKS']._serialized_end=391
31
+ _globals['_VENDORFEATURES']._serialized_start=393
32
+ _globals['_VENDORFEATURES']._serialized_end=439
33
+ _globals['_CONTROLLER']._serialized_start=442
34
+ _globals['_CONTROLLER']._serialized_end=708
35
+ _globals['_TCPSERVER']._serialized_start=710
36
+ _globals['_TCPSERVER']._serialized_end=799
37
+ _globals['_CONFIGURATION']._serialized_start=801
38
+ _globals['_CONFIGURATION']._serialized_end=872
39
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,78 @@
1
+ from google.protobuf.internal import containers as _containers
2
+ from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
3
+ from google.protobuf import descriptor as _descriptor
4
+ from google.protobuf import message as _message
5
+ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
6
+
7
+ DESCRIPTOR: _descriptor.FileDescriptor
8
+
9
+ class ControllerPreset(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
10
+ __slots__ = ()
11
+ DEFAULT: _ClassVar[ControllerPreset]
12
+ LAIRD_BL654: _ClassVar[ControllerPreset]
13
+ CSR_RCK_PTS_DONGLE: _ClassVar[ControllerPreset]
14
+ DEFAULT: ControllerPreset
15
+ LAIRD_BL654: ControllerPreset
16
+ CSR_RCK_PTS_DONGLE: ControllerPreset
17
+
18
+ class ControllerFeatures(_message.Message):
19
+ __slots__ = ("le_extended_advertising", "le_periodic_advertising", "ll_privacy", "le_2m_phy", "le_coded_phy", "le_connected_isochronous_stream")
20
+ LE_EXTENDED_ADVERTISING_FIELD_NUMBER: _ClassVar[int]
21
+ LE_PERIODIC_ADVERTISING_FIELD_NUMBER: _ClassVar[int]
22
+ LL_PRIVACY_FIELD_NUMBER: _ClassVar[int]
23
+ LE_2M_PHY_FIELD_NUMBER: _ClassVar[int]
24
+ LE_CODED_PHY_FIELD_NUMBER: _ClassVar[int]
25
+ LE_CONNECTED_ISOCHRONOUS_STREAM_FIELD_NUMBER: _ClassVar[int]
26
+ le_extended_advertising: bool
27
+ le_periodic_advertising: bool
28
+ ll_privacy: bool
29
+ le_2m_phy: bool
30
+ le_coded_phy: bool
31
+ le_connected_isochronous_stream: bool
32
+ def __init__(self, le_extended_advertising: bool = ..., le_periodic_advertising: bool = ..., ll_privacy: bool = ..., le_2m_phy: bool = ..., le_coded_phy: bool = ..., le_connected_isochronous_stream: bool = ...) -> None: ...
33
+
34
+ class ControllerQuirks(_message.Message):
35
+ __slots__ = ("send_acl_data_before_connection_complete", "has_default_random_address", "hardware_error_before_reset")
36
+ SEND_ACL_DATA_BEFORE_CONNECTION_COMPLETE_FIELD_NUMBER: _ClassVar[int]
37
+ HAS_DEFAULT_RANDOM_ADDRESS_FIELD_NUMBER: _ClassVar[int]
38
+ HARDWARE_ERROR_BEFORE_RESET_FIELD_NUMBER: _ClassVar[int]
39
+ send_acl_data_before_connection_complete: bool
40
+ has_default_random_address: bool
41
+ hardware_error_before_reset: bool
42
+ def __init__(self, send_acl_data_before_connection_complete: bool = ..., has_default_random_address: bool = ..., hardware_error_before_reset: bool = ...) -> None: ...
43
+
44
+ class VendorFeatures(_message.Message):
45
+ __slots__ = ("csr", "android")
46
+ CSR_FIELD_NUMBER: _ClassVar[int]
47
+ ANDROID_FIELD_NUMBER: _ClassVar[int]
48
+ csr: bool
49
+ android: bool
50
+ def __init__(self, csr: bool = ..., android: bool = ...) -> None: ...
51
+
52
+ class Controller(_message.Message):
53
+ __slots__ = ("preset", "features", "quirks", "strict", "vendor")
54
+ PRESET_FIELD_NUMBER: _ClassVar[int]
55
+ FEATURES_FIELD_NUMBER: _ClassVar[int]
56
+ QUIRKS_FIELD_NUMBER: _ClassVar[int]
57
+ STRICT_FIELD_NUMBER: _ClassVar[int]
58
+ VENDOR_FIELD_NUMBER: _ClassVar[int]
59
+ preset: ControllerPreset
60
+ features: ControllerFeatures
61
+ quirks: ControllerQuirks
62
+ strict: bool
63
+ vendor: VendorFeatures
64
+ def __init__(self, preset: _Optional[_Union[ControllerPreset, str]] = ..., features: _Optional[_Union[ControllerFeatures, _Mapping]] = ..., quirks: _Optional[_Union[ControllerQuirks, _Mapping]] = ..., strict: bool = ..., vendor: _Optional[_Union[VendorFeatures, _Mapping]] = ...) -> None: ...
65
+
66
+ class TcpServer(_message.Message):
67
+ __slots__ = ("tcp_port", "configuration")
68
+ TCP_PORT_FIELD_NUMBER: _ClassVar[int]
69
+ CONFIGURATION_FIELD_NUMBER: _ClassVar[int]
70
+ tcp_port: int
71
+ configuration: Controller
72
+ def __init__(self, tcp_port: _Optional[int] = ..., configuration: _Optional[_Union[Controller, _Mapping]] = ...) -> None: ...
73
+
74
+ class Configuration(_message.Message):
75
+ __slots__ = ("tcp_server",)
76
+ TCP_SERVER_FIELD_NUMBER: _ClassVar[int]
77
+ tcp_server: _containers.RepeatedCompositeFieldContainer[TcpServer]
78
+ def __init__(self, tcp_server: _Optional[_Iterable[_Union[TcpServer, _Mapping]]] = ...) -> None: ...
@@ -0,0 +1,4 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: bumble
3
- Version: 0.0.200
3
+ Version: 0.0.202
4
4
  Summary: Bluetooth Stack for Apps, Emulation, Test and Experimentation
5
5
  Home-page: https://github.com/google/bumble
6
6
  Author: Google
@@ -35,9 +35,10 @@ Provides-Extra: development
35
35
  Requires-Dist: black==24.3; extra == "development"
36
36
  Requires-Dist: grpcio-tools>=1.62.1; extra == "development"
37
37
  Requires-Dist: invoke>=1.7.3; extra == "development"
38
- Requires-Dist: mypy==1.10.0; extra == "development"
38
+ Requires-Dist: mobly>=1.12.2; extra == "development"
39
+ Requires-Dist: mypy==1.12.0; extra == "development"
39
40
  Requires-Dist: nox>=2022; extra == "development"
40
- Requires-Dist: pylint==3.1.0; extra == "development"
41
+ Requires-Dist: pylint==3.3.1; extra == "development"
41
42
  Requires-Dist: pyyaml>=6.0; extra == "development"
42
43
  Requires-Dist: types-appdirs>=1.4.3; extra == "development"
43
44
  Requires-Dist: types-invoke>=1.7.3; extra == "development"
@@ -1,9 +1,9 @@
1
1
  bumble/__init__.py,sha256=Q8jkz6rgl95IMAeInQVt_2GLoJl3DcEP2cxtrQ-ho5c,110
2
- bumble/_version.py,sha256=QkvzoUjUmzIu-0WPLCIoPkyy_n8BoMLliGVrvjz6i7A,415
2
+ bumble/_version.py,sha256=0o3Qq5M65Ds-43dG5u5R1z10hjSzTudi88nO90cBlv4,415
3
3
  bumble/a2dp.py,sha256=_dCq-qyG5OglDVlaOFwAgFe_ugvHuEdEYL-kWFf6sWQ,31775
4
4
  bumble/at.py,sha256=Giu2VUSJKH-jIh10lOfumiqy-FyO99Ra6nJ7UiWQ0H8,3114
5
- bumble/att.py,sha256=S-ha1Xn2YHf8k_c6JCXDv1QwiGJAJvgpHVLVxo1kkPQ,32755
6
- bumble/avc.py,sha256=OZz5_DYenPeg2PcNM3dpgV5PUs4D7FBSNOcSqsuRJ2w,16329
5
+ bumble/att.py,sha256=jFUcIDP3JYYdazWAVynGy0pcgNOzsldRzoBhhOkLCRI,32767
6
+ bumble/avc.py,sha256=cO1-8x7BvuBCQVJg-9nTibkLFC4y0_2SNERZ8_7Kn_c,16407
7
7
  bumble/avctp.py,sha256=yHAjJRjLGtR0Q-iWcLS7cJRz5Jr2YiRmZd6LZV4Xjt4,9935
8
8
  bumble/avdtp.py,sha256=2ki_BE4SHiu3Sx9oHCknfjF-bBcgPB9TsyF5upciUYI,76773
9
9
  bumble/avrcp.py,sha256=P_pLVpP3kRtoD2y0Ca0NTEEe1mA4SXO_ldtc4OP6Tcc,69976
@@ -18,7 +18,7 @@ bumble/decoder.py,sha256=0-VNWZT-u7lvK3qBpAuYT0M6Rz_bMgMi4CjfUXX_6RM,9728
18
18
  bumble/device.py,sha256=vroAnNWlBW6_jw1KgmoG4ZWKyauLm8abS1XFrTX084Y,195024
19
19
  bumble/gap.py,sha256=dRU2_TWvqTDx80hxeSbXlWIeWvptWH4_XbItG5y948Q,2138
20
20
  bumble/gatt.py,sha256=a07mQ3O0LFt5zgUzSUwa4Jak_FXOXSFX-njxnQNS_zY,39014
21
- bumble/gatt_client.py,sha256=gIpgNQj5WNm9RirXXT4vuXQZ4WK82IFMOqnfqBtoYRU,42809
21
+ bumble/gatt_client.py,sha256=2Y9rp5kn-aPC2aC0maiWmvrixcWvCWSktgEdjj_xr5w,43202
22
22
  bumble/gatt_server.py,sha256=pafGMeAuGAAELnr_1pB_l3CcR5u4H4Y1-MRHjN53gdE,37449
23
23
  bumble/hci.py,sha256=e2JqP-D1h7b7vHxFbmdsLJtOacdiuMizzGgBWmCAhxQ,286058
24
24
  bumble/helpers.py,sha256=m0w4UgFFNDEnXwHrDyfRlcBObdVed2fqXGL0lvR3c8s,12733
@@ -26,20 +26,20 @@ bumble/hfp.py,sha256=h5IcgxKnlFWapeJHcNDTvxup9oAE5CcZju92sOusTGc,75619
26
26
  bumble/hid.py,sha256=hJKm6qhNa0kQTGmp_VxNh3-ywgBDdJpPPFcvtFiRL0A,20335
27
27
  bumble/host.py,sha256=pPH7HTQ6ogOToj4Y5Jl985MKjbVlG_jeOcJrV0NTSqU,49204
28
28
  bumble/keys.py,sha256=WbIQ7Ob81mW75qmEPQ2rBLfnqBMA-ts2yowWXP9UaCY,12654
29
- bumble/l2cap.py,sha256=Bu6oTD3DzqLOKiarynT1cfQefNgR0gCJoKxnwQJl2_o,81398
30
- bumble/link.py,sha256=MYKsIKpbbAkh_ldxPZKu_GhS90ImC0IQtCAqbY4Ddg4,24034
29
+ bumble/l2cap.py,sha256=PJxoXV6h1hhHlkKKY3KGuF8l3HTpV-C-mAE6jfTkLY4,81421
30
+ bumble/link.py,sha256=SU7Ls2Lyg1XuY8x6yP9tAC83SYmMTU2a-vQ_CWCfq90,24107
31
31
  bumble/pairing.py,sha256=tgPUba6xNxMi-2plm3xfRlzHq-uPRNZEIGWaN0qNGCs,9853
32
32
  bumble/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
33
  bumble/rfcomm.py,sha256=dh5t5vlDEfw3yHgQfzegMYPnShP8Zo-3ScABUvmXNLI,40751
34
34
  bumble/rtp.py,sha256=388X3aCv-QrWJ37r_VPqXYJtvNGWPsHnJasqs41g_-s,3487
35
- bumble/sdp.py,sha256=aajRQybcMWh_Kc4IuQahix6bXnHg61OXl1gSdrSysl4,45465
36
- bumble/smp.py,sha256=FNLn-pt2n6CKNttQGJJDnfaeof2SVkxlapwySHWAVJY,77640
35
+ bumble/sdp.py,sha256=I45-qVmFcdRVd65iBuYTwrlKZX_AXAjnXrj4wjLR2co,45554
36
+ bumble/smp.py,sha256=Mc2q_tG3_ATJDrx5ZkPpNI7g6h6g1vRvH8OOQDbI39c,77685
37
37
  bumble/snoop.py,sha256=1mzwmp9LToUXbPnFsLrt8S4UHs0kqzbu7LDydwbmkZI,5715
38
38
  bumble/utils.py,sha256=e0i-4d28-9zP3gYcd1rdNd669rkPnRs5oJCERUEDfxo,15099
39
39
  bumble/apps/README.md,sha256=XTwjRAY-EJWDXpl1V8K3Mw8B7kIqzUIUizRjVBVhoIE,1769
40
40
  bumble/apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
41
  bumble/apps/auracast.py,sha256=hrG6dW79UkMXqcMLgYjziWEjcVibFUITvjPb4LX1lxM,24686
42
- bumble/apps/bench.py,sha256=nPACg5gQWxJ-6phze12FVCv1_WS2UjrWR7OUWj0o8PU,56350
42
+ bumble/apps/bench.py,sha256=RitVnx9mzmW-1cB4O7wan-lQeFDlazdjTW-BQcuTDb0,58410
43
43
  bumble/apps/ble_rpa_tool.py,sha256=ZQtsbfnLPd5qUAkEBPpNgJLRynBBc7q_9cDHKUW2SQ0,1701
44
44
  bumble/apps/console.py,sha256=rwD9y3g8Mm_mAEvrcXjbtcv5d8mwF3yTbmE6Vet2BEk,45300
45
45
  bumble/apps/controller_info.py,sha256=WScuK5Ytp5aFEosAcgRTCEeey6SmxDFmyB7KBhgVx6s,11759
@@ -52,7 +52,7 @@ bumble/apps/hci_bridge.py,sha256=KISv352tKnsQsoxjkDiCQbMFmhnPWdnug5wSFAAXxEs,403
52
52
  bumble/apps/l2cap_bridge.py,sha256=524VgEmgCP4g7T0UdgmsePmNVhDFRJECeaZ_uzKsbco,13062
53
53
  bumble/apps/pair.py,sha256=NtDxLfdnlOY_ZEtVNGVXWjv6_x_hndok_ydhV6zkFtI,18503
54
54
  bumble/apps/pandora_server.py,sha256=5qaoLCpcZE2KsGO21-7t6Vg4dBjBWbnyOQXwrLhxkuE,1397
55
- bumble/apps/rfcomm_bridge.py,sha256=PSszh4Qh1IsIw8ETs0fevOCAXEdVtqlgnV-ruzqGrZI,17215
55
+ bumble/apps/rfcomm_bridge.py,sha256=bAdDz84YpYkEfZ6vanQ_VUEpEF4MS4Y9fmbXB4bhoi4,17633
56
56
  bumble/apps/scan.py,sha256=b6hIppiJqDfR7VFW2wl3-lkPdFvHLqYZKY8VjjNnhls,8366
57
57
  bumble/apps/show.py,sha256=8w0-8jLtN6IM6_58pOHbEmE1Rmxm71O48ACrXixC2jk,6218
58
58
  bumble/apps/unbond.py,sha256=LDPWpmgKLMGYDdIFGTdGciFDcUliZ0OmseEbGfJ-MAM,3176
@@ -86,7 +86,7 @@ bumble/profiles/__init__.py,sha256=yBGC8Ti5LvZuoh1F42XtfrBilb39T77_yuxESZeX2yI,5
86
86
  bumble/profiles/aics.py,sha256=U0K03XqOKtqahXtq7U47WxftsAD7tkiDeUqxfaF4pwk,18540
87
87
  bumble/profiles/ascs.py,sha256=Y2_fd_5LOb9hon60LcQl3R-FoAIsOd_J37RZpveh-7c,25471
88
88
  bumble/profiles/asha.py,sha256=QXUp7ImuMD48L0mpuNxPcIkv8VvoENynCuF2PEVqzFM,10373
89
- bumble/profiles/bap.py,sha256=wLnrbXso203rgw0WNa91qIdMdjuIoGc9VqOHc9Ey_b4,19421
89
+ bumble/profiles/bap.py,sha256=E_D6dGMWgTM2HsAk7y-iK-IWVJxfPtHOB5KZZkYV6yw,19613
90
90
  bumble/profiles/bass.py,sha256=Wiqum0Wsr5PpVzTAPDcyKLTfJoKXJUYOzqB320aSiUs,14950
91
91
  bumble/profiles/battery_service.py,sha256=w-uF4jLoDozJOoykimb2RkrKjVyCke6ts2-h-F1PYyc,2292
92
92
  bumble/profiles/cap.py,sha256=6gH7oOnUKjOggMPuB7rtbwj0AneoNmnWzQ_iR3io8e0,1945
@@ -108,8 +108,8 @@ bumble/tools/rtk_fw_download.py,sha256=KEPG-rDrdPGKBzZ78P4s3udLRYT3p7vesGhXvJTWT
108
108
  bumble/tools/rtk_util.py,sha256=TwZhupHQrQYsYHLdRGyzXKd24pwCk8kkzqK1Rj2guco,5087
109
109
  bumble/transport/__init__.py,sha256=Z01fvuKpqAbhJd0wYcGhW09W2tycM71ck80XoZ8a87Q,7012
110
110
  bumble/transport/android_emulator.py,sha256=6HR2cEqdU0XbOldwxCtQuXtvwOUYhRfHkPz0TRt3mbo,4382
111
- bumble/transport/android_netsim.py,sha256=bQ1XSNloAsqanyEQMmcTpZX6csiZNdowoYDh-JskDZY,16447
112
- bumble/transport/common.py,sha256=bJWYH-vRJJl0nWwlAjGTHrRQFdZayKkH7YoGor5abH8,16659
111
+ bumble/transport/android_netsim.py,sha256=P-keFdM9-iU_HQQYirYX-yEJtEM_gItzi9srNzWRQiI,17196
112
+ bumble/transport/common.py,sha256=caAHY0JqYmE91rrDFkTPX_FtUWtz4quqgQpMRSI9Jsc,16769
113
113
  bumble/transport/file.py,sha256=eVM2V6Nk2nDAFdE7Rt01ZI3JdTovsH9OEU1gKYPJjpE,2010
114
114
  bumble/transport/hci_socket.py,sha256=EdgWi3-O5yvYcH4R4BkPtG79pnUo7GQtXWawuUHDoDQ,6331
115
115
  bumble/transport/pty.py,sha256=grTl-yvjMWHflNwuME4ccVqDbk6NIEgQMgH6Y9lf1fU,2732
@@ -125,9 +125,6 @@ bumble/transport/vhci.py,sha256=iI2WpighnvIP5zeyJUFSbjEdmCo24CWMdICamIcyJck,2250
125
125
  bumble/transport/ws_client.py,sha256=9gqm5jlVT_H6LfwsQwPpky07CINhgOK96ef53SMAxms,1757
126
126
  bumble/transport/ws_server.py,sha256=goe4xx7OnZiJy1a00Bg0CXM8uJhsGXbsijMYq2n62bI,3328
127
127
  bumble/transport/grpc_protobuf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
- bumble/transport/grpc_protobuf/common_pb2.py,sha256=ayV7r0mOrBnjY8E3Qk0_-7OMcrngS-V7v3rHz6ECUqE,1028
129
- bumble/transport/grpc_protobuf/common_pb2.pyi,sha256=d3CZ1ng27btmrOT_dpd1uWk5zgv2M5O09EcCsmgbo8I,370
130
- bumble/transport/grpc_protobuf/common_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
131
128
  bumble/transport/grpc_protobuf/emulated_bluetooth_device_pb2.py,sha256=NFz7pja_rxMEyU3fI-SgHLghTw4KeN1gXUjT4uglrEQ,7959
132
129
  bumble/transport/grpc_protobuf/emulated_bluetooth_device_pb2.pyi,sha256=O0qhb2L_oAekmSnqCElidwIg4PZ3XjAyQ4oEy4ycD-A,8385
133
130
  bumble/transport/grpc_protobuf/emulated_bluetooth_device_pb2_grpc.py,sha256=Lwj8ACC0cw7ooxQHZ2EEdz10Iz5_xlwlGiTiMgx1GKA,9402
@@ -143,23 +140,34 @@ bumble/transport/grpc_protobuf/emulated_bluetooth_vhci_pb2_grpc.py,sha256=F9XHiG
143
140
  bumble/transport/grpc_protobuf/grpc_endpoint_description_pb2.py,sha256=MSMHN-d9Do5L4pehTjg5RkOWo5vM73khrsIp5IYFOH8,1693
144
141
  bumble/transport/grpc_protobuf/grpc_endpoint_description_pb2.pyi,sha256=V2Gyi0xj9oeSiGXfRrtzrXoXVia4bJw8UQ8qaVxHlns,1637
145
142
  bumble/transport/grpc_protobuf/grpc_endpoint_description_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
146
- bumble/transport/grpc_protobuf/hci_packet_pb2.py,sha256=2iu4-Y-wTRWyUq-FdRIY_G2N6ueuds-bjON5ARRd_zs,1618
147
- bumble/transport/grpc_protobuf/hci_packet_pb2.pyi,sha256=kfaEKa9aGG2xWfOolcq1Bamlo38J3NEtp9p3UKcjoEQ,953
148
- bumble/transport/grpc_protobuf/hci_packet_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
149
- bumble/transport/grpc_protobuf/packet_streamer_pb2.py,sha256=t9g3Qja1pEzYxMm_634bapfN4mEPaYj96ZUi03jtHEY,1812
150
- bumble/transport/grpc_protobuf/packet_streamer_pb2.pyi,sha256=ssqdKvXqqU6U0Z7IqVEaOOaKvrX4SnrzuLc-vlPGllo,1335
151
- bumble/transport/grpc_protobuf/packet_streamer_pb2_grpc.py,sha256=k4RDFvE5Y4QgGLieClI2S34BiPyveDNVQca1euiyaNY,4376
152
- bumble/transport/grpc_protobuf/startup_pb2.py,sha256=viPPlvFuRE1HoM3zg3Ayy5wfNnuSSAX80MNqtKVqv-o,1854
153
- bumble/transport/grpc_protobuf/startup_pb2.pyi,sha256=8bDHVKJ_PIZuPvXRVK7tJCPOY8E8ZKW-5xzqbRLEJcw,2140
154
- bumble/transport/grpc_protobuf/startup_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
143
+ bumble/transport/grpc_protobuf/netsim/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
144
+ bumble/transport/grpc_protobuf/netsim/common_pb2.py,sha256=0bZrftCSlobRYOfH_jyT4gcphgKvxyUTqdFfwflZ_Fw,1164
145
+ bumble/transport/grpc_protobuf/netsim/common_pb2.pyi,sha256=6ird5I38ZhvxIq3F4pQkFNxKH3y7NakFqJAljK7zfc8,570
146
+ bumble/transport/grpc_protobuf/netsim/common_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
147
+ bumble/transport/grpc_protobuf/netsim/hci_packet_pb2.py,sha256=O4FFyygF2m6amM8FTiOOjX1PzM4vW_tlJYpgJOiwQRk,1763
148
+ bumble/transport/grpc_protobuf/netsim/hci_packet_pb2.pyi,sha256=Aji68Irnex6tfpOWi4cnn0a2cKyE3VJPfbqkFQtgtDI,1248
149
+ bumble/transport/grpc_protobuf/netsim/hci_packet_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
150
+ bumble/transport/grpc_protobuf/netsim/model_pb2.py,sha256=P8el_xXW9iq0vVAgvIoZdxlVbX19ZRqQ5IVxVlNlYq8,8343
151
+ bumble/transport/grpc_protobuf/netsim/model_pb2.pyi,sha256=0BRRDzvXA9zZevSdsnoHbpNcBh0CctdiSE6PAlrmoI4,13190
152
+ bumble/transport/grpc_protobuf/netsim/model_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
153
+ bumble/transport/grpc_protobuf/netsim/packet_streamer_pb2.py,sha256=-Jyos1CazqEg3awlRBINe2ZVS5ASRoKwlwM9hKtZLC8,2067
154
+ bumble/transport/grpc_protobuf/netsim/packet_streamer_pb2.pyi,sha256=b9H9ESnHXW9Ue9zRfgvGH9uRdOUYZ7soH6L2gc-HHM8,1407
155
+ bumble/transport/grpc_protobuf/netsim/packet_streamer_pb2_grpc.py,sha256=6r10Iby_Ma3XPTgxAO7AyZHMzkAp4luCJ7sWJJvQdJs,4489
156
+ bumble/transport/grpc_protobuf/netsim/startup_pb2.py,sha256=O2z4j3uP_IM_BdJ1vkpk5KCatIePJ4HOQ7nA-nRjH88,3425
157
+ bumble/transport/grpc_protobuf/netsim/startup_pb2.pyi,sha256=jMIOpCKFw2SZSJ7bFZBdvcdTGlPygGVvdhBrz1QWUUc,3862
158
+ bumble/transport/grpc_protobuf/netsim/startup_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
159
+ bumble/transport/grpc_protobuf/rootcanal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
+ bumble/transport/grpc_protobuf/rootcanal/configuration_pb2.py,sha256=q7_0A9E9m1HT4lNhOKjF0LDiz1_MW_1ZmKqkGScel-8,3159
161
+ bumble/transport/grpc_protobuf/rootcanal/configuration_pb2.pyi,sha256=W8j1bXHBrkPGKvuYQ8n6saVS1w-TsUw2Wt24gyFHoaU,3939
162
+ bumble/transport/grpc_protobuf/rootcanal/configuration_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
155
163
  bumble/vendor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
156
164
  bumble/vendor/android/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
157
165
  bumble/vendor/android/hci.py,sha256=GZrkhaWmcMt1JpnRhv0NoySGkf2H4lNUV2f_omRZW0I,10741
158
166
  bumble/vendor/zephyr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
159
167
  bumble/vendor/zephyr/hci.py,sha256=d83bC0TvT947eN4roFjLkQefWtHOoNsr4xib2ctSkvA,3195
160
- bumble-0.0.200.dist-info/LICENSE,sha256=FvaYh4NRWIGgS_OwoBs5gFgkCmAghZ-DYnIGBZPuw-s,12142
161
- bumble-0.0.200.dist-info/METADATA,sha256=JusrKVEENpezz89ImgV1FiIA5pBG9OoZK6Ic2ass0ac,5673
162
- bumble-0.0.200.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
163
- bumble-0.0.200.dist-info/entry_points.txt,sha256=2TAnDAHiYVEo9Gnugk29QIsHpCgRgnPqBszLSgIX2T0,984
164
- bumble-0.0.200.dist-info/top_level.txt,sha256=tV6JJKaHPYMFiJYiBYFW24PCcfLxTJZdlu6BmH3Cb00,7
165
- bumble-0.0.200.dist-info/RECORD,,
168
+ bumble-0.0.202.dist-info/LICENSE,sha256=FvaYh4NRWIGgS_OwoBs5gFgkCmAghZ-DYnIGBZPuw-s,12142
169
+ bumble-0.0.202.dist-info/METADATA,sha256=rao_wk6XWfEzXwGDY0rdDLSByA_rBfAiS9NSf9v111I,5726
170
+ bumble-0.0.202.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
171
+ bumble-0.0.202.dist-info/entry_points.txt,sha256=2TAnDAHiYVEo9Gnugk29QIsHpCgRgnPqBszLSgIX2T0,984
172
+ bumble-0.0.202.dist-info/top_level.txt,sha256=tV6JJKaHPYMFiJYiBYFW24PCcfLxTJZdlu6BmH3Cb00,7
173
+ bumble-0.0.202.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.2.0)
2
+ Generator: setuptools (75.3.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,28 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: hci_packet.proto
4
- """Generated protocol buffer code."""
5
- from google.protobuf.internal import builder as _builder
6
- from google.protobuf import descriptor as _descriptor
7
- from google.protobuf import descriptor_pool as _descriptor_pool
8
- from google.protobuf import symbol_database as _symbol_database
9
- # @@protoc_insertion_point(imports)
10
-
11
- _sym_db = _symbol_database.Default()
12
-
13
-
14
-
15
-
16
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10hci_packet.proto\x12\rnetsim.packet\"\xb2\x01\n\tHCIPacket\x12\x38\n\x0bpacket_type\x18\x01 \x01(\x0e\x32#.netsim.packet.HCIPacket.PacketType\x12\x0e\n\x06packet\x18\x02 \x01(\x0c\"[\n\nPacketType\x12\x1a\n\x16HCI_PACKET_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x43OMMAND\x10\x01\x12\x07\n\x03\x41\x43L\x10\x02\x12\x07\n\x03SCO\x10\x03\x12\t\n\x05\x45VENT\x10\x04\x12\x07\n\x03ISO\x10\x05\x42J\n\x1f\x63om.android.emulation.bluetoothP\x01\xf8\x01\x01\xa2\x02\x03\x41\x45\x42\xaa\x02\x1b\x41ndroid.Emulation.Bluetoothb\x06proto3')
17
-
18
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
19
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'hci_packet_pb2', globals())
20
- if _descriptor._USE_C_DESCRIPTORS == False:
21
-
22
- DESCRIPTOR._options = None
23
- DESCRIPTOR._serialized_options = b'\n\037com.android.emulation.bluetoothP\001\370\001\001\242\002\003AEB\252\002\033Android.Emulation.Bluetooth'
24
- _HCIPACKET._serialized_start=36
25
- _HCIPACKET._serialized_end=214
26
- _HCIPACKET_PACKETTYPE._serialized_start=123
27
- _HCIPACKET_PACKETTYPE._serialized_end=214
28
- # @@protoc_insertion_point(module_scope)
@@ -1,31 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: packet_streamer.proto
4
- """Generated protocol buffer code."""
5
- from google.protobuf.internal import builder as _builder
6
- from google.protobuf import descriptor as _descriptor
7
- from google.protobuf import descriptor_pool as _descriptor_pool
8
- from google.protobuf import symbol_database as _symbol_database
9
- # @@protoc_insertion_point(imports)
10
-
11
- _sym_db = _symbol_database.Default()
12
-
13
-
14
- from . import hci_packet_pb2 as hci__packet__pb2
15
- from . import startup_pb2 as startup__pb2
16
-
17
-
18
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15packet_streamer.proto\x12\rnetsim.packet\x1a\x10hci_packet.proto\x1a\rstartup.proto\"\x93\x01\n\rPacketRequest\x12\x30\n\x0cinitial_info\x18\x01 \x01(\x0b\x32\x18.netsim.startup.ChipInfoH\x00\x12.\n\nhci_packet\x18\x02 \x01(\x0b\x32\x18.netsim.packet.HCIPacketH\x00\x12\x10\n\x06packet\x18\x03 \x01(\x0cH\x00\x42\x0e\n\x0crequest_type\"t\n\x0ePacketResponse\x12\x0f\n\x05\x65rror\x18\x01 \x01(\tH\x00\x12.\n\nhci_packet\x18\x02 \x01(\x0b\x32\x18.netsim.packet.HCIPacketH\x00\x12\x10\n\x06packet\x18\x03 \x01(\x0cH\x00\x42\x0f\n\rresponse_type2b\n\x0ePacketStreamer\x12P\n\rStreamPackets\x12\x1c.netsim.packet.PacketRequest\x1a\x1d.netsim.packet.PacketResponse(\x01\x30\x01\x62\x06proto3')
19
-
20
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
21
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'packet_streamer_pb2', globals())
22
- if _descriptor._USE_C_DESCRIPTORS == False:
23
-
24
- DESCRIPTOR._options = None
25
- _PACKETREQUEST._serialized_start=74
26
- _PACKETREQUEST._serialized_end=221
27
- _PACKETRESPONSE._serialized_start=223
28
- _PACKETRESPONSE._serialized_end=339
29
- _PACKETSTREAMER._serialized_start=341
30
- _PACKETSTREAMER._serialized_end=439
31
- # @@protoc_insertion_point(module_scope)
@@ -1,32 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: startup.proto
4
- """Generated protocol buffer code."""
5
- from google.protobuf.internal import builder as _builder
6
- from google.protobuf import descriptor as _descriptor
7
- from google.protobuf import descriptor_pool as _descriptor_pool
8
- from google.protobuf import symbol_database as _symbol_database
9
- # @@protoc_insertion_point(imports)
10
-
11
- _sym_db = _symbol_database.Default()
12
-
13
-
14
- from . import common_pb2 as common__pb2
15
-
16
-
17
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rstartup.proto\x12\x0enetsim.startup\x1a\x0c\x63ommon.proto\"\x7f\n\x0bStartupInfo\x12\x33\n\x07\x64\x65vices\x18\x01 \x03(\x0b\x32\".netsim.startup.StartupInfo.Device\x1a;\n\x06\x44\x65vice\x12\x0c\n\x04name\x18\x01 \x01(\t\x12#\n\x05\x63hips\x18\x02 \x03(\x0b\x32\x14.netsim.startup.Chip\"<\n\x08\x43hipInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\"\n\x04\x63hip\x18\x02 \x01(\x0b\x32\x14.netsim.startup.Chip\"\x96\x01\n\x04\x43hip\x12%\n\x04kind\x18\x01 \x01(\x0e\x32\x17.netsim.common.ChipKind\x12\n\n\x02id\x18\x02 \x01(\t\x12\x14\n\x0cmanufacturer\x18\x03 \x01(\t\x12\x14\n\x0cproduct_name\x18\x04 \x01(\t\x12\r\n\x05\x66\x64_in\x18\x05 \x01(\x05\x12\x0e\n\x06\x66\x64_out\x18\x06 \x01(\x05\x12\x10\n\x08loopback\x18\x07 \x01(\x08\x62\x06proto3')
18
-
19
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
20
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'startup_pb2', globals())
21
- if _descriptor._USE_C_DESCRIPTORS == False:
22
-
23
- DESCRIPTOR._options = None
24
- _STARTUPINFO._serialized_start=47
25
- _STARTUPINFO._serialized_end=174
26
- _STARTUPINFO_DEVICE._serialized_start=115
27
- _STARTUPINFO_DEVICE._serialized_end=174
28
- _CHIPINFO._serialized_start=176
29
- _CHIPINFO._serialized_end=236
30
- _CHIP._serialized_start=239
31
- _CHIP._serialized_end=389
32
- # @@protoc_insertion_point(module_scope)
@@ -1,46 +0,0 @@
1
- from . import common_pb2 as _common_pb2
2
- from google.protobuf.internal import containers as _containers
3
- from google.protobuf import descriptor as _descriptor
4
- from google.protobuf import message as _message
5
- from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
6
-
7
- DESCRIPTOR: _descriptor.FileDescriptor
8
-
9
- class Chip(_message.Message):
10
- __slots__ = ["fd_in", "fd_out", "id", "kind", "loopback", "manufacturer", "product_name"]
11
- FD_IN_FIELD_NUMBER: _ClassVar[int]
12
- FD_OUT_FIELD_NUMBER: _ClassVar[int]
13
- ID_FIELD_NUMBER: _ClassVar[int]
14
- KIND_FIELD_NUMBER: _ClassVar[int]
15
- LOOPBACK_FIELD_NUMBER: _ClassVar[int]
16
- MANUFACTURER_FIELD_NUMBER: _ClassVar[int]
17
- PRODUCT_NAME_FIELD_NUMBER: _ClassVar[int]
18
- fd_in: int
19
- fd_out: int
20
- id: str
21
- kind: _common_pb2.ChipKind
22
- loopback: bool
23
- manufacturer: str
24
- product_name: str
25
- def __init__(self, kind: _Optional[_Union[_common_pb2.ChipKind, str]] = ..., id: _Optional[str] = ..., manufacturer: _Optional[str] = ..., product_name: _Optional[str] = ..., fd_in: _Optional[int] = ..., fd_out: _Optional[int] = ..., loopback: bool = ...) -> None: ...
26
-
27
- class ChipInfo(_message.Message):
28
- __slots__ = ["chip", "name"]
29
- CHIP_FIELD_NUMBER: _ClassVar[int]
30
- NAME_FIELD_NUMBER: _ClassVar[int]
31
- chip: Chip
32
- name: str
33
- def __init__(self, name: _Optional[str] = ..., chip: _Optional[_Union[Chip, _Mapping]] = ...) -> None: ...
34
-
35
- class StartupInfo(_message.Message):
36
- __slots__ = ["devices"]
37
- class Device(_message.Message):
38
- __slots__ = ["chips", "name"]
39
- CHIPS_FIELD_NUMBER: _ClassVar[int]
40
- NAME_FIELD_NUMBER: _ClassVar[int]
41
- chips: _containers.RepeatedCompositeFieldContainer[Chip]
42
- name: str
43
- def __init__(self, name: _Optional[str] = ..., chips: _Optional[_Iterable[_Union[Chip, _Mapping]]] = ...) -> None: ...
44
- DEVICES_FIELD_NUMBER: _ClassVar[int]
45
- devices: _containers.RepeatedCompositeFieldContainer[StartupInfo.Device]
46
- def __init__(self, devices: _Optional[_Iterable[_Union[StartupInfo.Device, _Mapping]]] = ...) -> None: ...