Merge pull request #763 from google/gbg/isort

This commit is contained in:
Gilles Boccon-Gibod
2025-08-22 13:50:27 -07:00
committed by GitHub
198 changed files with 1129 additions and 1321 deletions

View File

@@ -24,12 +24,7 @@ import dataclasses
import functools
import logging
import struct
from typing import (
Any,
AsyncGenerator,
Coroutine,
Optional,
)
from typing import Any, AsyncGenerator, Coroutine, Optional
import click
@@ -40,21 +35,14 @@ except ImportError as e:
"Try `python -m pip install \"git+https://github.com/google/liblc3.git\"`."
) from e
from bumble.audio import io as audio_io
from bumble.colors import color
from bumble import company_ids
from bumble import core
from bumble import gatt
from bumble import hci
from bumble.profiles import bap
from bumble.profiles import le_audio
from bumble.profiles import pbp
from bumble.profiles import bass
import bumble.device
import bumble.logging
import bumble.transport
import bumble.utils
import bumble.logging
from bumble import company_ids, core, gatt, hci
from bumble.audio import io as audio_io
from bumble.colors import color
from bumble.profiles import bap, bass, le_audio, pbp
# -----------------------------------------------------------------------------
# Logging

View File

@@ -26,16 +26,19 @@ from typing import Optional
import click
import bumble.core
import bumble.logging
import bumble.rfcomm
from bumble import l2cap
from bumble.colors import color
from bumble.core import (
PhysicalTransport,
BT_L2CAP_PROTOCOL_ID,
BT_RFCOMM_PROTOCOL_ID,
UUID,
CommandTimeoutError,
ConnectionPHY,
PhysicalTransport,
)
from bumble.colors import color
from bumble.core import ConnectionPHY
from bumble.device import (
CigParameters,
CisLink,
@@ -49,12 +52,13 @@ from bumble.hci import (
HCI_LE_1M_PHY,
HCI_LE_2M_PHY,
HCI_LE_CODED_PHY,
Role,
HCI_Constant,
HCI_Error,
HCI_StatusError,
HCI_IsoDataPacket,
HCI_StatusError,
Role,
)
from bumble.pairing import PairingConfig
from bumble.sdp import (
SDP_BROWSE_GROUP_LIST_ATTRIBUTE_ID,
SDP_PROTOCOL_DESCRIPTOR_LIST_ATTRIBUTE_ID,
@@ -65,12 +69,7 @@ from bumble.sdp import (
ServiceAttribute,
)
from bumble.transport import open_transport
import bumble.rfcomm
import bumble.core
from bumble.utils import AsyncRunner
from bumble.pairing import PairingConfig
import bumble.logging
# -----------------------------------------------------------------------------
# Logging

View File

@@ -13,6 +13,7 @@
# limitations under the License.
import click
from bumble.colors import color
from bumble.hci import Address
from bumble.helpers import generate_irk, verify_rpa_with_irk

View File

@@ -23,58 +23,55 @@ import asyncio
import logging
import os
import re
import humanize
from typing import Optional, Union
from collections import OrderedDict
from typing import Optional, Union
import click
import humanize
from prettytable import PrettyTable
from prompt_toolkit import Application
from prompt_toolkit.history import FileHistory
from prompt_toolkit.completion import Completer, Completion, NestedCompleter
from prompt_toolkit.key_binding import KeyBindings
from prompt_toolkit.formatted_text import ANSI
from prompt_toolkit.styles import Style
from prompt_toolkit.filters import Condition
from prompt_toolkit.widgets import TextArea, Frame
from prompt_toolkit.widgets.toolbars import FormattedTextToolbar
from prompt_toolkit.data_structures import Point
from prompt_toolkit.filters import Condition
from prompt_toolkit.formatted_text import ANSI
from prompt_toolkit.history import FileHistory
from prompt_toolkit.key_binding import KeyBindings
from prompt_toolkit.layout import (
Layout,
HSplit,
Window,
CompletionsMenu,
Float,
FormattedTextControl,
FloatContainer,
ConditionalContainer,
Dimension,
Float,
FloatContainer,
FormattedTextControl,
HSplit,
Layout,
Window,
)
from prompt_toolkit.styles import Style
from prompt_toolkit.widgets import Frame, TextArea
from prompt_toolkit.widgets.toolbars import FormattedTextToolbar
from bumble import __version__
import bumble.core
from bumble import colors
from bumble import __version__, colors
from bumble.core import UUID, AdvertisingData
from bumble.device import (
Connection,
ConnectionParametersPreferences,
ConnectionPHY,
Device,
Connection,
Peer,
)
from bumble.utils import AsyncRunner
from bumble.transport import open_transport
from bumble.gatt import Characteristic, Service, CharacteristicDeclaration, Descriptor
from bumble.gatt import Characteristic, CharacteristicDeclaration, Descriptor, Service
from bumble.gatt_client import CharacteristicProxy
from bumble.hci import (
Address,
HCI_Constant,
HCI_LE_1M_PHY,
HCI_LE_2M_PHY,
HCI_LE_CODED_PHY,
Address,
HCI_Constant,
)
from bumble.transport import open_transport
from bumble.utils import AsyncRunner
# -----------------------------------------------------------------------------
# Constants

View File

@@ -20,44 +20,44 @@ import time
import click
from bumble.company_ids import COMPANY_IDENTIFIERS
import bumble.logging
from bumble.colors import color
from bumble.company_ids import COMPANY_IDENTIFIERS
from bumble.core import name_or_number
from bumble.hci import (
map_null_terminated_utf8_string,
CodecID,
LeFeature,
HCI_LE_READ_BUFFER_SIZE_COMMAND,
HCI_LE_READ_BUFFER_SIZE_V2_COMMAND,
HCI_LE_READ_MAXIMUM_ADVERTISING_DATA_LENGTH_COMMAND,
HCI_LE_READ_MAXIMUM_DATA_LENGTH_COMMAND,
HCI_LE_READ_NUMBER_OF_SUPPORTED_ADVERTISING_SETS_COMMAND,
HCI_LE_READ_SUGGESTED_DEFAULT_DATA_LENGTH_COMMAND,
HCI_READ_BD_ADDR_COMMAND,
HCI_READ_BUFFER_SIZE_COMMAND,
HCI_READ_LOCAL_NAME_COMMAND,
HCI_SUCCESS,
HCI_VERSION_NAMES,
LMP_VERSION_NAMES,
CodecID,
HCI_Command,
HCI_Command_Complete_Event,
HCI_Command_Status_Event,
HCI_READ_BUFFER_SIZE_COMMAND,
HCI_Read_Buffer_Size_Command,
HCI_LE_READ_BUFFER_SIZE_V2_COMMAND,
HCI_LE_Read_Buffer_Size_V2_Command,
HCI_READ_BD_ADDR_COMMAND,
HCI_Read_BD_ADDR_Command,
HCI_READ_LOCAL_NAME_COMMAND,
HCI_Read_Local_Name_Command,
HCI_LE_READ_BUFFER_SIZE_COMMAND,
HCI_LE_Read_Buffer_Size_Command,
HCI_LE_READ_MAXIMUM_DATA_LENGTH_COMMAND,
HCI_LE_Read_Maximum_Data_Length_Command,
HCI_LE_READ_NUMBER_OF_SUPPORTED_ADVERTISING_SETS_COMMAND,
HCI_LE_Read_Number_Of_Supported_Advertising_Sets_Command,
HCI_LE_READ_MAXIMUM_ADVERTISING_DATA_LENGTH_COMMAND,
HCI_LE_Read_Buffer_Size_V2_Command,
HCI_LE_Read_Maximum_Advertising_Data_Length_Command,
HCI_LE_READ_SUGGESTED_DEFAULT_DATA_LENGTH_COMMAND,
HCI_LE_Read_Maximum_Data_Length_Command,
HCI_LE_Read_Number_Of_Supported_Advertising_Sets_Command,
HCI_LE_Read_Suggested_Default_Data_Length_Command,
HCI_Read_BD_ADDR_Command,
HCI_Read_Buffer_Size_Command,
HCI_Read_Local_Name_Command,
HCI_Read_Local_Supported_Codecs_Command,
HCI_Read_Local_Supported_Codecs_V2_Command,
HCI_Read_Local_Version_Information_Command,
LeFeature,
map_null_terminated_utf8_string,
)
from bumble.host import Host
from bumble.transport import open_transport
import bumble.logging
# -----------------------------------------------------------------------------

View File

@@ -21,17 +21,17 @@ from typing import Optional
import click
import bumble.logging
from bumble.colors import color
from bumble.hci import (
HCI_READ_LOOPBACK_MODE_COMMAND,
HCI_Read_Loopback_Mode_Command,
HCI_WRITE_LOOPBACK_MODE_COMMAND,
HCI_Read_Loopback_Mode_Command,
HCI_Write_Loopback_Mode_Command,
LoopbackMode,
)
from bumble.host import Host
from bumble.transport import open_transport
import bumble.logging
class Loopback:

View File

@@ -18,10 +18,10 @@
import asyncio
import sys
import bumble.logging
from bumble.controller import Controller
from bumble.link import LocalLink
from bumble.transport import open_transport
import bumble.logging
# -----------------------------------------------------------------------------

View File

@@ -20,18 +20,18 @@ from typing import Callable, Iterable, Optional
import click
from bumble.core import ProtocolError
import bumble.logging
from bumble.colors import color
from bumble.core import ProtocolError
from bumble.device import Device, Peer
from bumble.gatt import Service
from bumble.profiles.device_information_service import DeviceInformationServiceProxy
from bumble.profiles.battery_service import BatteryServiceProxy
from bumble.profiles.device_information_service import DeviceInformationServiceProxy
from bumble.profiles.gap import GenericAccessServiceProxy
from bumble.profiles.pacs import PublishedAudioCapabilitiesServiceProxy
from bumble.profiles.tmap import TelephonyAndMediaAudioServiceProxy
from bumble.profiles.vcs import VolumeControlServiceProxy
from bumble.transport import open_transport
import bumble.logging
# -----------------------------------------------------------------------------

View File

@@ -20,11 +20,11 @@ import asyncio
import click
import bumble.core
import bumble.logging
from bumble.colors import color
from bumble.device import Device, Peer
from bumble.gatt import show_services
from bumble.transport import open_transport
import bumble.logging
# -----------------------------------------------------------------------------

View File

@@ -20,16 +20,15 @@ import struct
import click
import bumble.logging
from bumble import l2cap
from bumble.colors import color
from bumble.device import Device, Peer
from bumble.core import AdvertisingData
from bumble.gatt import Service, Characteristic, CharacteristicValue
from bumble.utils import AsyncRunner
from bumble.transport import open_transport
from bumble.device import Device, Peer
from bumble.gatt import Characteristic, CharacteristicValue, Service
from bumble.hci import HCI_Constant
import bumble.logging
from bumble.transport import open_transport
from bumble.utils import AsyncRunner
# -----------------------------------------------------------------------------
# Constants

View File

@@ -12,17 +12,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import asyncio
# -----------------------------------------------------------------------------
# Imports
# -----------------------------------------------------------------------------
import logging
import asyncio
import sys
import bumble.logging
from bumble import hci, transport
from bumble.bridge import HCI_Bridge
import bumble.logging
# -----------------------------------------------------------------------------
# Logging

View File

@@ -19,13 +19,13 @@ import asyncio
import click
import bumble.logging
from bumble import l2cap
from bumble.colors import color
from bumble.transport import open_transport
from bumble.device import Device
from bumble.utils import FlowControlAsyncPipe
from bumble.hci import HCI_Constant
import bumble.logging
from bumble.transport import open_transport
from bumble.utils import FlowControlAsyncPipe
# -----------------------------------------------------------------------------

View File

@@ -20,31 +20,30 @@ from __future__ import annotations
import asyncio
import datetime
import functools
from importlib import resources
import json
import logging
import pathlib
import weakref
import wave
import weakref
from importlib import resources
try:
import lc3 # type: ignore # pylint: disable=E0401
except ImportError as e:
raise ImportError("Try `python -m pip install \".[lc3]\"`.") from e
import click
import aiohttp.web
import click
import bumble
from bumble import utils
from bumble.core import AdvertisingData
from bumble.colors import color
from bumble.device import Device, DeviceConfiguration, AdvertisingParameters, CisLink
from bumble.transport import open_transport
from bumble.profiles import ascs, bap, pacs
from bumble.hci import Address, CodecID, CodingFormat, HCI_IsoDataPacket
import bumble.logging
from bumble import utils
from bumble.colors import color
from bumble.core import AdvertisingData
from bumble.device import AdvertisingParameters, CisLink, Device, DeviceConfiguration
from bumble.hci import Address, CodecID, CodingFormat, HCI_IsoDataPacket
from bumble.profiles import ascs, bap, pacs
from bumble.transport import open_transport
# -----------------------------------------------------------------------------
# Logging

View File

@@ -16,42 +16,42 @@
# Imports
# -----------------------------------------------------------------------------
import asyncio
import os
import logging
import os
import struct
import click
from prompt_toolkit.shortcuts import PromptSession
from bumble.a2dp import make_audio_sink_service_sdp_records
from bumble.att import (
ATT_INSUFFICIENT_AUTHENTICATION_ERROR,
ATT_INSUFFICIENT_ENCRYPTION_ERROR,
ATT_Error,
)
from bumble.colors import color
from bumble.device import Device, Peer
from bumble.transport import open_transport
from bumble.pairing import OobData, PairingDelegate, PairingConfig
from bumble.smp import OobContext, OobLegacyContext
from bumble.smp import error_name as smp_error_name
from bumble.keys import JsonKeyStore
from bumble.core import (
UUID,
AdvertisingData,
Appearance,
ProtocolError,
PhysicalTransport,
UUID,
ProtocolError,
)
from bumble.device import Device, Peer
from bumble.gatt import (
GATT_DEVICE_NAME_CHARACTERISTIC,
GATT_GENERIC_ACCESS_SERVICE,
GATT_HEART_RATE_SERVICE,
GATT_HEART_RATE_MEASUREMENT_CHARACTERISTIC,
Service,
GATT_HEART_RATE_SERVICE,
Characteristic,
Service,
)
from bumble.hci import OwnAddressType
from bumble.att import (
ATT_Error,
ATT_INSUFFICIENT_AUTHENTICATION_ERROR,
ATT_INSUFFICIENT_ENCRYPTION_ERROR,
)
from bumble.keys import JsonKeyStore
from bumble.pairing import OobData, PairingConfig, PairingDelegate
from bumble.smp import OobContext, OobLegacyContext
from bumble.smp import error_name as smp_error_name
from bumble.transport import open_transport
from bumble.utils import AsyncRunner
# -----------------------------------------------------------------------------

View File

@@ -1,11 +1,12 @@
import asyncio
import click
import logging
import json
from bumble.pandora import PandoraDevice, Config, serve
import logging
from typing import Any
import click
from bumble.pandora import Config, PandoraDevice, serve
BUMBLE_SERVER_GRPC_PORT = 7999
ROOTCANAL_PORT_CUTTLEFISH = 7300

View File

@@ -16,53 +16,50 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import asyncio
import logging
from typing import Optional, Union
import click
import bumble.logging
from bumble.a2dp import (
make_audio_source_service_sdp_records,
A2DP_SBC_CODEC_TYPE,
A2DP_MPEG_2_4_AAC_CODEC_TYPE,
A2DP_NON_A2DP_CODEC_TYPE,
A2DP_SBC_CODEC_TYPE,
AacFrame,
AacParser,
AacPacketSource,
AacMediaCodecInformation,
SbcFrame,
SbcParser,
SbcPacketSource,
SbcMediaCodecInformation,
OpusPacket,
OpusParser,
OpusPacketSource,
AacPacketSource,
AacParser,
OpusMediaCodecInformation,
OpusPacket,
OpusPacketSource,
OpusParser,
SbcFrame,
SbcMediaCodecInformation,
SbcPacketSource,
SbcParser,
make_audio_source_service_sdp_records,
)
from bumble.avrcp import Protocol as AvrcpProtocol
from bumble.avdtp import (
find_avdtp_service_with_connection,
AVDTP_AUDIO_MEDIA_TYPE,
AVDTP_DELAY_REPORTING_SERVICE_CATEGORY,
MediaCodecCapabilities,
MediaPacketPump,
Protocol as AvdtpProtocol,
)
from bumble.avdtp import Protocol as AvdtpProtocol
from bumble.avdtp import find_avdtp_service_with_connection
from bumble.avrcp import Protocol as AvrcpProtocol
from bumble.colors import color
from bumble.core import (
AdvertisingData,
ConnectionError as BumbleConnectionError,
DeviceClass,
PhysicalTransport,
)
from bumble.core import AdvertisingData
from bumble.core import ConnectionError as BumbleConnectionError
from bumble.core import DeviceClass, PhysicalTransport
from bumble.device import Connection, Device, DeviceConfiguration
from bumble.hci import Address, HCI_CONNECTION_ALREADY_EXISTS_ERROR, HCI_Constant
from bumble.hci import HCI_CONNECTION_ALREADY_EXISTS_ERROR, Address, HCI_Constant
from bumble.pairing import PairingConfig
from bumble.transport import open_transport
from bumble.utils import AsyncRunner
import bumble.logging
# -----------------------------------------------------------------------------
# Logging

View File

@@ -21,15 +21,10 @@ from typing import Optional
import click
from bumble.colors import color
from bumble.device import Device, DeviceConfiguration, Connection
from bumble import core
from bumble import hci
from bumble import rfcomm
from bumble import transport
from bumble import utils
import bumble.logging
from bumble import core, hci, rfcomm, transport, utils
from bumble.colors import color
from bumble.device import Connection, Device, DeviceConfiguration
# -----------------------------------------------------------------------------
# Constants

View File

@@ -16,16 +16,16 @@
# Imports
# -----------------------------------------------------------------------------
import asyncio
import click
import bumble.logging
from bumble.colors import color
from bumble.device import Device
from bumble.transport import open_transport
from bumble.device import Advertisement, Device
from bumble.hci import HCI_LE_1M_PHY, HCI_LE_CODED_PHY, Address, HCI_Constant
from bumble.keys import JsonKeyStore
from bumble.smp import AddressResolver
from bumble.device import Advertisement
from bumble.hci import Address, HCI_Constant, HCI_LE_1M_PHY, HCI_LE_CODED_PHY
import bumble.logging
from bumble.transport import open_transport
# -----------------------------------------------------------------------------

View File

@@ -22,12 +22,11 @@ import struct
import click
from bumble.colors import color
from bumble import hci
from bumble.transport.common import PacketReader
from bumble.helpers import PacketTracer
import bumble.logging
from bumble import hci
from bumble.colors import color
from bumble.helpers import PacketTracer
from bumble.transport.common import PacketReader
# -----------------------------------------------------------------------------
# Logging

View File

@@ -16,49 +16,49 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import asyncio
import asyncio.subprocess
from importlib import resources
import enum
import json
import logging
import pathlib
import subprocess
from typing import Optional
import weakref
from importlib import resources
from typing import Optional
import click
import aiohttp
import click
from aiohttp import web
import bumble
from bumble.colors import color
from bumble.core import PhysicalTransport, CommandTimeoutError
from bumble.device import Connection, Device, DeviceConfiguration
from bumble.hci import HCI_StatusError
from bumble.pairing import PairingConfig
from bumble.sdp import ServiceAttribute
from bumble.transport import open_transport
import bumble.logging
from bumble.a2dp import (
A2DP_MPEG_2_4_AAC_CODEC_TYPE,
A2DP_NON_A2DP_CODEC_TYPE,
A2DP_SBC_CODEC_TYPE,
AacMediaCodecInformation,
OpusMediaCodecInformation,
SbcMediaCodecInformation,
make_audio_sink_service_sdp_records,
)
from bumble.avdtp import (
AVDTP_AUDIO_MEDIA_TYPE,
Listener,
MediaCodecCapabilities,
Protocol,
)
from bumble.a2dp import (
make_audio_sink_service_sdp_records,
A2DP_SBC_CODEC_TYPE,
A2DP_MPEG_2_4_AAC_CODEC_TYPE,
A2DP_NON_A2DP_CODEC_TYPE,
SbcMediaCodecInformation,
AacMediaCodecInformation,
OpusMediaCodecInformation,
)
from bumble.utils import AsyncRunner
from bumble.codecs import AacAudioRtpPacket
from bumble.colors import color
from bumble.core import CommandTimeoutError, PhysicalTransport
from bumble.device import Connection, Device, DeviceConfiguration
from bumble.hci import HCI_StatusError
from bumble.pairing import PairingConfig
from bumble.rtp import MediaPacket
import bumble.logging
from bumble.sdp import ServiceAttribute
from bumble.transport import open_transport
from bumble.utils import AsyncRunner
# -----------------------------------------------------------------------------
# Logging

View File

@@ -16,12 +16,13 @@
# Imports
# -----------------------------------------------------------------------------
import asyncio
import click
import bumble.logging
from bumble.device import Device
from bumble.keys import JsonKeyStore
from bumble.transport import open_transport
import bumble.logging
# -----------------------------------------------------------------------------

View File

@@ -29,10 +29,9 @@
import click
import usb1
import bumble.logging
from bumble.colors import color
from bumble.transport.usb import load_libusb
import bumble.logging
# -----------------------------------------------------------------------------
# Constants

View File

@@ -17,37 +17,36 @@
# -----------------------------------------------------------------------------
from __future__ import annotations
from collections.abc import AsyncGenerator
import dataclasses
import enum
import logging
import struct
from collections.abc import AsyncGenerator
from typing import Awaitable, Callable
from typing_extensions import ClassVar, Self
from typing_extensions import ClassVar, Self
from bumble.codecs import AacAudioRtpPacket
from bumble.company_ids import COMPANY_IDENTIFIERS
from bumble.sdp import (
DataElement,
ServiceAttribute,
SDP_PUBLIC_BROWSE_ROOT,
SDP_BROWSE_GROUP_LIST_ATTRIBUTE_ID,
SDP_SERVICE_RECORD_HANDLE_ATTRIBUTE_ID,
SDP_SERVICE_CLASS_ID_LIST_ATTRIBUTE_ID,
SDP_PROTOCOL_DESCRIPTOR_LIST_ATTRIBUTE_ID,
SDP_BLUETOOTH_PROFILE_DESCRIPTOR_LIST_ATTRIBUTE_ID,
)
from bumble.core import (
BT_L2CAP_PROTOCOL_ID,
BT_AUDIO_SOURCE_SERVICE,
BT_AUDIO_SINK_SERVICE,
BT_AVDTP_PROTOCOL_ID,
BT_ADVANCED_AUDIO_DISTRIBUTION_SERVICE,
BT_AUDIO_SINK_SERVICE,
BT_AUDIO_SOURCE_SERVICE,
BT_AVDTP_PROTOCOL_ID,
BT_L2CAP_PROTOCOL_ID,
name_or_number,
)
from bumble.rtp import MediaPacket
from bumble.sdp import (
SDP_BLUETOOTH_PROFILE_DESCRIPTOR_LIST_ATTRIBUTE_ID,
SDP_BROWSE_GROUP_LIST_ATTRIBUTE_ID,
SDP_PROTOCOL_DESCRIPTOR_LIST_ATTRIBUTE_ID,
SDP_PUBLIC_BROWSE_ROOT,
SDP_SERVICE_CLASS_ID_LIST_ATTRIBUTE_ID,
SDP_SERVICE_RECORD_HANDLE_ATTRIBUTE_ID,
DataElement,
ServiceAttribute,
)
# -----------------------------------------------------------------------------
# Logging

View File

@@ -30,22 +30,20 @@ import functools
import inspect
import struct
from typing import (
TYPE_CHECKING,
Awaitable,
Callable,
ClassVar,
Generic,
Optional,
TypeVar,
Union,
ClassVar,
Optional,
TYPE_CHECKING,
)
from bumble import hci
from bumble import utils
from bumble import hci, utils
from bumble.colors import color
from bumble.core import UUID, InvalidOperationError, ProtocolError
from bumble.hci import HCI_Object
from bumble.colors import color
# -----------------------------------------------------------------------------
# Typing

View File

@@ -17,20 +17,16 @@
# -----------------------------------------------------------------------------
from __future__ import annotations
import asyncio
import abc
from concurrent.futures import ThreadPoolExecutor
import asyncio
import dataclasses
import enum
import logging
import pathlib
from typing import (
AsyncGenerator,
BinaryIO,
TYPE_CHECKING,
)
import sys
import wave
from concurrent.futures import ThreadPoolExecutor
from typing import TYPE_CHECKING, AsyncGenerator, BinaryIO
from bumble.colors import color

View File

@@ -16,12 +16,12 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import enum
import struct
from typing import Union
from bumble import core
from bumble import utils
from bumble import core, utils
# -----------------------------------------------------------------------------

View File

@@ -16,15 +16,14 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
from enum import IntEnum
import logging
import struct
from typing import Callable, cast, Optional
from enum import IntEnum
from typing import Callable, Optional, cast
from bumble import avc, core, l2cap
from bumble.colors import color
from bumble import avc
from bumble import core
from bumble import l2cap
# -----------------------------------------------------------------------------
# Logging

View File

@@ -16,31 +16,25 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import asyncio
import time
import logging
import enum
import logging
import time
import warnings
from typing import (
Any,
Awaitable,
Optional,
Callable,
AsyncGenerator,
Awaitable,
Callable,
Iterable,
Union,
Optional,
SupportsBytes,
Union,
cast,
)
from bumble.core import (
BT_ADVANCED_AUDIO_DISTRIBUTION_SERVICE,
InvalidStateError,
ProtocolError,
InvalidArgumentError,
name_or_number,
)
from bumble import device, l2cap, sdp, utils
from bumble.a2dp import (
A2DP_CODEC_TYPE_NAMES,
A2DP_MPEG_2_4_AAC_CODEC_TYPE,
@@ -51,10 +45,15 @@ from bumble.a2dp import (
SbcMediaCodecInformation,
VendorSpecificMediaCodecInformation,
)
from bumble.rtp import MediaPacket
from bumble import sdp, device, l2cap, utils
from bumble.colors import color
from bumble.core import (
BT_ADVANCED_AUDIO_DISTRIBUTION_SERVICE,
InvalidArgumentError,
InvalidStateError,
ProtocolError,
name_or_number,
)
from bumble.rtp import MediaPacket
# -----------------------------------------------------------------------------
# Logging

View File

@@ -16,16 +16,16 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import asyncio
from dataclasses import dataclass
import enum
import logging
import struct
from dataclasses import dataclass
from typing import (
AsyncIterator,
Awaitable,
Callable,
cast,
Iterable,
List,
Optional,
@@ -33,28 +33,23 @@ from typing import (
SupportsBytes,
TypeVar,
Union,
cast,
)
from bumble import avc, avctp, core, l2cap, utils
from bumble.colors import color
from bumble.device import Device, Connection
from bumble.device import Connection, Device
from bumble.sdp import (
SDP_SERVICE_RECORD_HANDLE_ATTRIBUTE_ID,
SDP_BROWSE_GROUP_LIST_ATTRIBUTE_ID,
SDP_PUBLIC_BROWSE_ROOT,
SDP_PROTOCOL_DESCRIPTOR_LIST_ATTRIBUTE_ID,
SDP_SERVICE_CLASS_ID_LIST_ATTRIBUTE_ID,
SDP_BLUETOOTH_PROFILE_DESCRIPTOR_LIST_ATTRIBUTE_ID,
SDP_BROWSE_GROUP_LIST_ATTRIBUTE_ID,
SDP_PROTOCOL_DESCRIPTOR_LIST_ATTRIBUTE_ID,
SDP_PUBLIC_BROWSE_ROOT,
SDP_SERVICE_CLASS_ID_LIST_ATTRIBUTE_ID,
SDP_SERVICE_RECORD_HANDLE_ATTRIBUTE_ID,
SDP_SUPPORTED_FEATURES_ATTRIBUTE_ID,
DataElement,
ServiceAttribute,
)
from bumble import utils
from bumble import core
from bumble import l2cap
from bumble import avc
from bumble import avctp
# -----------------------------------------------------------------------------
# Logging

View File

@@ -16,7 +16,9 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
from dataclasses import dataclass
from typing_extensions import Self
from bumble import core

View File

@@ -17,17 +17,17 @@
# -----------------------------------------------------------------------------
from __future__ import annotations
import logging
import asyncio
import dataclasses
import itertools
import logging
import random
import struct
from bumble.colors import color
from bumble.core import (
PhysicalTransport,
)
from typing import TYPE_CHECKING, Any, Optional, Union
from bumble import hci
from bumble.colors import color
from bumble.core import PhysicalTransport
from bumble.hci import (
HCI_ACL_DATA_PACKET,
HCI_COMMAND_DISALLOWED_ERROR,
@@ -38,13 +38,12 @@ from bumble.hci import (
HCI_EVENT_PACKET,
HCI_INVALID_HCI_COMMAND_PARAMETERS_ERROR,
HCI_LE_1M_PHY,
HCI_SUCCESS,
HCI_UNKNOWN_HCI_COMMAND_ERROR,
HCI_UNKNOWN_CONNECTION_IDENTIFIER_ERROR,
HCI_REMOTE_USER_TERMINATED_CONNECTION_ERROR,
HCI_SUCCESS,
HCI_UNKNOWN_CONNECTION_IDENTIFIER_ERROR,
HCI_UNKNOWN_HCI_COMMAND_ERROR,
HCI_VERSION_BLUETOOTH_CORE_5_0,
Address,
Role,
HCI_AclDataPacket,
HCI_AclDataPacketAssembler,
HCI_Command_Complete_Event,
@@ -53,7 +52,6 @@ from bumble.hci import (
HCI_Connection_Request_Event,
HCI_Disconnection_Complete_Event,
HCI_Encryption_Change_Event,
HCI_Synchronous_Connection_Complete_Event,
HCI_LE_Advertising_Report_Event,
HCI_LE_CIS_Established_Event,
HCI_LE_CIS_Request_Event,
@@ -62,8 +60,9 @@ from bumble.hci import (
HCI_Number_Of_Completed_Packets_Event,
HCI_Packet,
HCI_Role_Change_Event,
HCI_Synchronous_Connection_Complete_Event,
Role,
)
from typing import Optional, Union, Any, TYPE_CHECKING
if TYPE_CHECKING:
from bumble.link import LocalLink

View File

@@ -19,12 +19,12 @@ from __future__ import annotations
import enum
import struct
from typing import cast, overload, Literal, Union, Optional
from typing import Literal, Optional, Union, cast, overload
from typing_extensions import Self
from bumble.company_ids import COMPANY_IDENTIFIERS
from bumble import utils
from bumble.company_ids import COMPANY_IDENTIFIERS
# -----------------------------------------------------------------------------
# Constants

View File

@@ -22,12 +22,12 @@ import operator
import secrets
try:
from bumble.crypto.cryptography import EccKey, e, aes_cmac
from bumble.crypto.cryptography import EccKey, aes_cmac, e
except ImportError:
logging.getLogger(__name__).debug(
"Unable to import cryptography, use built-in primitives."
)
from bumble.crypto.builtin import EccKey, e, aes_cmac # type: ignore[assignment]
from bumble.crypto.builtin import EccKey, aes_cmac, e # type: ignore[assignment]
# -----------------------------------------------------------------------------

View File

@@ -24,9 +24,9 @@
# -----------------------------------------------------------------------------
from __future__ import annotations
import copy
import dataclasses
import functools
import copy
import secrets
import struct
from typing import Optional

View File

@@ -16,11 +16,9 @@ from __future__ import annotations
import functools
from cryptography.hazmat.primitives import ciphers
from cryptography.hazmat.primitives.ciphers import algorithms
from cryptography.hazmat.primitives.ciphers import modes
from cryptography.hazmat.primitives import ciphers, cmac
from cryptography.hazmat.primitives.asymmetric import ec
from cryptography.hazmat.primitives import cmac
from cryptography.hazmat.primitives.ciphers import algorithms, modes
def e(key: bytes, data: bytes) -> bytes:

View File

@@ -16,24 +16,22 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import asyncio
import collections
from collections.abc import Iterable, Sequence
from contextlib import (
asynccontextmanager,
AsyncExitStack,
closing,
)
import copy
from dataclasses import dataclass, field
from enum import Enum, IntEnum
import functools
import itertools
import json
import logging
import secrets
import sys
from collections.abc import Iterable, Sequence
from contextlib import AsyncExitStack, asynccontextmanager, closing
from dataclasses import dataclass, field
from enum import Enum, IntEnum
from typing import (
TYPE_CHECKING,
Any,
Awaitable,
Callable,
@@ -43,47 +41,35 @@ from typing import (
Union,
cast,
overload,
TYPE_CHECKING,
)
from typing_extensions import Self
from bumble.colors import color
from bumble import core, gatt_client, gatt_server, hci, l2cap, pairing, sdp, smp, utils
from bumble.att import ATT_CID, ATT_DEFAULT_MTU, ATT_PDU
from bumble.gatt import Attribute, Characteristic, Descriptor, Service
from bumble.host import DataPacketQueue, Host
from bumble.profiles.gap import GenericAccessService
from bumble.colors import color
from bumble.core import (
PhysicalTransport,
AdvertisingData,
BaseBumbleError,
ConnectionParameterUpdateError,
CommandTimeoutError,
ConnectionParameterUpdateError,
ConnectionPHY,
InvalidArgumentError,
InvalidOperationError,
InvalidStateError,
NotSupportedError,
OutOfResourcesError,
PhysicalTransport,
UnreachableError,
)
from bumble import utils
from bumble.keys import (
KeyStore,
PairingKeys,
)
from bumble import hci
from bumble import pairing
from bumble import gatt_client
from bumble import gatt_server
from bumble import smp
from bumble import sdp
from bumble import l2cap
from bumble import core
from bumble.gatt import Attribute, Characteristic, Descriptor, Service
from bumble.host import DataPacketQueue, Host
from bumble.keys import KeyStore, PairingKeys
from bumble.profiles import gatt_service
from bumble.profiles.gap import GenericAccessService
if TYPE_CHECKING:
from bumble.transport.common import TransportSource, TransportSink
from bumble.transport.common import TransportSink, TransportSource
_T = TypeVar('_T')

View File

@@ -20,12 +20,13 @@ like loading firmware after a cold start.
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import logging
import pathlib
import platform
from typing import Iterable, Optional, TYPE_CHECKING
from typing import TYPE_CHECKING, Iterable, Optional
from bumble.drivers import rtk, intel
from bumble.drivers import intel, rtk
from bumble.drivers.common import Driver
if TYPE_CHECKING:

View File

@@ -20,6 +20,7 @@ Loosely based on the Fuchsia OS implementation.
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import asyncio
import collections
import dataclasses
@@ -28,12 +29,10 @@ import os
import pathlib
import platform
import struct
from typing import Any, Optional, TYPE_CHECKING
from typing import TYPE_CHECKING, Any, Optional
from bumble import core
from bumble import core, hci, utils
from bumble.drivers import common
from bumble import hci
from bumble import utils
if TYPE_CHECKING:
from bumble.host import Host

View File

@@ -17,10 +17,6 @@ Based on various online bits of information, including the Linux kernel.
(see `drivers/bluetooth/btrtl.c`)
"""
# -----------------------------------------------------------------------------
# Imports
# -----------------------------------------------------------------------------
from dataclasses import dataclass, field
import asyncio
import enum
import logging
@@ -31,9 +27,12 @@ import platform
import struct
import weakref
# -----------------------------------------------------------------------------
# Imports
# -----------------------------------------------------------------------------
from dataclasses import dataclass, field
from bumble import core
from bumble import hci
from bumble import core, hci
from bumble.drivers import common
# -----------------------------------------------------------------------------

View File

@@ -19,11 +19,11 @@ import logging
import struct
from bumble.gatt import (
Service,
Characteristic,
GATT_GENERIC_ACCESS_SERVICE,
GATT_DEVICE_NAME_CHARACTERISTIC,
GATT_APPEARANCE_CHARACTERISTIC,
GATT_DEVICE_NAME_CHARACTERISTIC,
GATT_GENERIC_ACCESS_SERVICE,
Characteristic,
Service,
)
# -----------------------------------------------------------------------------

View File

@@ -23,15 +23,16 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import enum
import functools
import logging
import struct
from typing import Iterable, Optional, Sequence, TypeVar, Union
from bumble.colors import color
from bumble.core import BaseBumbleError, UUID
from bumble.att import Attribute, AttributeValue
from bumble.colors import color
from bumble.core import UUID, BaseBumbleError
# -----------------------------------------------------------------------------
# Typing

View File

@@ -20,22 +20,14 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import struct
from typing import (
Any,
Callable,
Generic,
Iterable,
Literal,
Optional,
TypeVar,
)
import struct
from typing import Any, Callable, Generic, Iterable, Literal, Optional, TypeVar
from bumble import utils
from bumble.core import InvalidOperationError
from bumble.gatt import Characteristic
from bumble.gatt_client import CharacteristicProxy
from bumble import utils
# -----------------------------------------------------------------------------
# Typing

View File

@@ -24,40 +24,38 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import asyncio
import logging
import struct
from datetime import datetime
from typing import (
TYPE_CHECKING,
Any,
Callable,
Generic,
Iterable,
Optional,
Union,
TypeVar,
TYPE_CHECKING,
Union,
)
from bumble import att, core, utils
from bumble.colors import color
from bumble.hci import HCI_Constant
from bumble import att
from bumble import utils
from bumble import core
from bumble.core import UUID, InvalidStateError
from bumble.gatt import (
GATT_CHARACTERISTIC_ATTRIBUTE_TYPE,
GATT_CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR,
GATT_INCLUDE_ATTRIBUTE_TYPE,
GATT_PRIMARY_SERVICE_ATTRIBUTE_TYPE,
GATT_REQUEST_TIMEOUT,
GATT_SECONDARY_SERVICE_ATTRIBUTE_TYPE,
GATT_INCLUDE_ATTRIBUTE_TYPE,
Characteristic,
ClientCharacteristicConfigurationBits,
InvalidServiceError,
TemplateService,
)
from bumble.hci import HCI_Constant
# -----------------------------------------------------------------------------
# Typing

View File

@@ -24,18 +24,14 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import asyncio
import logging
from collections import defaultdict
import struct
from typing import (
Iterable,
Optional,
TypeVar,
TYPE_CHECKING,
)
from collections import defaultdict
from typing import TYPE_CHECKING, Iterable, Optional, TypeVar
from bumble import att
from bumble import att, utils
from bumble.colors import color
from bumble.core import UUID
from bumble.gatt import (
@@ -48,14 +44,13 @@ from bumble.gatt import (
Characteristic,
CharacteristicDeclaration,
CharacteristicValue,
IncludedServiceDeclaration,
Descriptor,
IncludedServiceDeclaration,
Service,
)
from bumble import utils
if TYPE_CHECKING:
from bumble.device import Device, Connection
from bumble.device import Connection, Device
# -----------------------------------------------------------------------------
# Logging

View File

@@ -16,19 +16,21 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import collections
import dataclasses
from dataclasses import field
import enum
import functools
import logging
import secrets
import struct
from collections.abc import Sequence
from typing import Any, Callable, Iterable, Optional, Union, TypeVar, ClassVar, cast
from dataclasses import field
from typing import Any, Callable, ClassVar, Iterable, Optional, TypeVar, Union, cast
from typing_extensions import Self
from bumble import crypto
from bumble import crypto, utils
from bumble.colors import color
from bumble.core import (
DeviceClass,
@@ -40,8 +42,6 @@ from bumble.core import (
name_or_number,
padded_bytes,
)
from bumble import utils
# -----------------------------------------------------------------------------
# Logging

View File

@@ -17,43 +17,36 @@
# -----------------------------------------------------------------------------
from __future__ import annotations
from collections.abc import Callable, MutableMapping
import datetime
from typing import cast, Any, Optional
import logging
from collections.abc import Callable, MutableMapping
from typing import Any, Optional, cast
from bumble import avc
from bumble import avctp
from bumble import avdtp
from bumble import avrcp
from bumble import crypto
from bumble import rfcomm
from bumble import sdp
from bumble.colors import color
from bumble import avc, avctp, avdtp, avrcp, crypto, rfcomm, sdp
from bumble.att import ATT_CID, ATT_PDU
from bumble.smp import SMP_CID, SMP_Command
from bumble.colors import color
from bumble.core import name_or_number
from bumble.l2cap import (
CommandCode,
L2CAP_PDU,
L2CAP_SIGNALING_CID,
L2CAP_LE_SIGNALING_CID,
L2CAP_Control_Frame,
L2CAP_Connection_Request,
L2CAP_Connection_Response,
)
from bumble.hci import (
Address,
HCI_EVENT_PACKET,
HCI_ACL_DATA_PACKET,
HCI_DISCONNECTION_COMPLETE_EVENT,
HCI_AclDataPacketAssembler,
HCI_Packet,
HCI_Event,
HCI_EVENT_PACKET,
Address,
HCI_AclDataPacket,
HCI_AclDataPacketAssembler,
HCI_Disconnection_Complete_Event,
HCI_Event,
HCI_Packet,
)
from bumble.l2cap import (
L2CAP_LE_SIGNALING_CID,
L2CAP_PDU,
L2CAP_SIGNALING_CID,
CommandCode,
L2CAP_Connection_Request,
L2CAP_Connection_Response,
L2CAP_Control_Frame,
)
from bumble.smp import SMP_CID, SMP_Command
# -----------------------------------------------------------------------------
# Logging

View File

@@ -17,45 +17,34 @@
# -----------------------------------------------------------------------------
from __future__ import annotations
import asyncio
import collections
import collections.abc
import logging
import asyncio
import dataclasses
import enum
import traceback
import logging
import re
from typing import (
Union,
Any,
Optional,
ClassVar,
Iterable,
TYPE_CHECKING,
)
import traceback
from typing import TYPE_CHECKING, Any, ClassVar, Iterable, Optional, Union
from typing_extensions import Self
from bumble import at
from bumble import device
from bumble import rfcomm
from bumble import sdp
from bumble import utils
from bumble import at, device, rfcomm, sdp, utils
from bumble.colors import color
from bumble.core import (
ProtocolError,
BT_GENERIC_AUDIO_SERVICE,
BT_HANDSFREE_SERVICE,
BT_HANDSFREE_AUDIO_GATEWAY_SERVICE,
BT_HANDSFREE_SERVICE,
BT_L2CAP_PROTOCOL_ID,
BT_RFCOMM_PROTOCOL_ID,
ProtocolError,
)
from bumble.hci import (
HCI_Enhanced_Setup_Synchronous_Connection_Command,
CodingFormat,
CodecID,
CodingFormat,
HCI_Enhanced_Setup_Synchronous_Connection_Command,
)
# -----------------------------------------------------------------------------
# Logging
# -----------------------------------------------------------------------------

View File

@@ -16,22 +16,20 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
from dataclasses import dataclass
import logging
import enum
import struct
import enum
import logging
import struct
from abc import ABC, abstractmethod
from typing import Optional, Callable
from dataclasses import dataclass
from typing import Callable, Optional
from typing_extensions import override
from bumble import l2cap
from bumble import device
from bumble import utils
from bumble import device, l2cap, utils
from bumble.core import InvalidStateError, ProtocolError
from bumble.hci import Address
# -----------------------------------------------------------------------------
# Logging
# -----------------------------------------------------------------------------

View File

@@ -16,33 +16,19 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import asyncio
import collections
import dataclasses
import logging
import struct
from typing import TYPE_CHECKING, Any, Awaitable, Callable, Optional, cast
from typing import (
Any,
Awaitable,
Callable,
Optional,
cast,
TYPE_CHECKING,
)
from bumble import drivers, hci, utils
from bumble.colors import color
from bumble.core import ConnectionParameters, ConnectionPHY, PhysicalTransport
from bumble.l2cap import L2CAP_PDU
from bumble.snoop import Snooper
from bumble import drivers
from bumble import hci
from bumble.core import (
PhysicalTransport,
ConnectionPHY,
ConnectionParameters,
)
from bumble import utils
from bumble.transport.common import TransportLostError
if TYPE_CHECKING:

View File

@@ -21,16 +21,18 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import asyncio
import dataclasses
import json
import logging
import os
import json
from typing import TYPE_CHECKING, Optional, Any
from typing import TYPE_CHECKING, Any, Optional
from typing_extensions import Self
from bumble.colors import color
from bumble import hci
from bumble.colors import color
if TYPE_CHECKING:
from bumble.device import Device

View File

@@ -16,33 +16,32 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import asyncio
import dataclasses
import enum
import logging
import struct
from collections import deque
from collections.abc import Sequence
from typing import (
Optional,
Callable,
TYPE_CHECKING,
Any,
Union,
Callable,
ClassVar,
Iterable,
Optional,
SupportsBytes,
TypeVar,
ClassVar,
TYPE_CHECKING,
Union,
)
from bumble import utils
from bumble import hci
from bumble import hci, utils
from bumble.colors import color
from bumble.core import (
InvalidStateError,
InvalidArgumentError,
InvalidPacketError,
InvalidStateError,
OutOfResourcesError,
ProtocolError,
)

View File

@@ -12,26 +12,25 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import asyncio
# -----------------------------------------------------------------------------
# Imports
# -----------------------------------------------------------------------------
import logging
import asyncio
from bumble import core
from bumble.hci import (
Address,
Role,
HCI_SUCCESS,
HCI_CONNECTION_ACCEPT_TIMEOUT_ERROR,
HCI_UNKNOWN_CONNECTION_IDENTIFIER_ERROR,
HCI_PAGE_TIMEOUT_ERROR,
HCI_Connection_Complete_Event,
)
from bumble import controller
from typing import Optional
from bumble import controller, core
from bumble.hci import (
HCI_CONNECTION_ACCEPT_TIMEOUT_ERROR,
HCI_PAGE_TIMEOUT_ERROR,
HCI_SUCCESS,
HCI_UNKNOWN_CONNECTION_IDENTIFIER_ERROR,
Address,
HCI_Connection_Complete_Event,
Role,
)
# -----------------------------------------------------------------------------
# Logging
# -----------------------------------------------------------------------------

View File

@@ -16,27 +16,28 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import enum
from dataclasses import dataclass
import secrets
from dataclasses import dataclass
from typing import Optional
from bumble import hci
from bumble.core import AdvertisingData, LeRole
from bumble.smp import (
SMP_NO_INPUT_NO_OUTPUT_IO_CAPABILITY,
SMP_KEYBOARD_ONLY_IO_CAPABILITY,
SMP_DISPLAY_ONLY_IO_CAPABILITY,
SMP_DISPLAY_YES_NO_IO_CAPABILITY,
SMP_KEYBOARD_DISPLAY_IO_CAPABILITY,
SMP_ENC_KEY_DISTRIBUTION_FLAG,
SMP_ID_KEY_DISTRIBUTION_FLAG,
SMP_SIGN_KEY_DISTRIBUTION_FLAG,
SMP_KEYBOARD_DISPLAY_IO_CAPABILITY,
SMP_KEYBOARD_ONLY_IO_CAPABILITY,
SMP_LINK_KEY_DISTRIBUTION_FLAG,
SMP_NO_INPUT_NO_OUTPUT_IO_CAPABILITY,
SMP_SIGN_KEY_DISTRIBUTION_FLAG,
OobContext,
OobLegacyContext,
OobSharedData,
)
from bumble.core import AdvertisingData, LeRole
# -----------------------------------------------------------------------------

View File

@@ -19,21 +19,22 @@ This module implement the Pandora Bluetooth test APIs for the Bumble stack.
__version__ = "0.0.1"
from typing import Callable, List, Optional
import grpc
import grpc.aio
from bumble.pandora.config import Config
from bumble.pandora.device import PandoraDevice
from bumble.pandora.host import HostService
from bumble.pandora.l2cap import L2CAPService
from bumble.pandora.security import SecurityService, SecurityStorageService
from pandora.host_grpc_aio import add_HostServicer_to_server
from pandora.l2cap_grpc_aio import add_L2CAPServicer_to_server
from pandora.security_grpc_aio import (
add_SecurityServicer_to_server,
add_SecurityStorageServicer_to_server,
)
from typing import Callable, List, Optional
from bumble.pandora.config import Config
from bumble.pandora.device import PandoraDevice
from bumble.pandora.host import HostService
from bumble.pandora.l2cap import L2CAPService
from bumble.pandora.security import SecurityService, SecurityStorageService
# public symbols
__all__ = [

View File

@@ -13,10 +13,12 @@
# limitations under the License.
from __future__ import annotations
from bumble.pairing import PairingConfig, PairingDelegate
from dataclasses import dataclass
from typing import Any
from bumble.pairing import PairingConfig, PairingDelegate
@dataclass
class Config:

View File

@@ -15,6 +15,9 @@
"""Generic & dependency free Bumble (reference) device."""
from __future__ import annotations
from typing import Any, Optional
from bumble import transport
from bumble.core import (
BT_GENERIC_AUDIO_SERVICE,
@@ -32,8 +35,6 @@ from bumble.sdp import (
DataElement,
ServiceAttribute,
)
from typing import Any, Optional
# Default rootcanal HCI TCP address
ROOTCANAL_HCI_ADDRESS = "localhost:6402"

View File

@@ -13,51 +13,23 @@
# limitations under the License.
from __future__ import annotations
import asyncio
import bumble.device
import grpc
import grpc.aio
import logging
import struct
from typing import AsyncGenerator, Optional, cast
import bumble.utils
from bumble.pandora import utils
from bumble.pandora.config import Config
from bumble.core import (
PhysicalTransport,
UUID,
AdvertisingData,
Appearance,
ConnectionError,
)
from bumble.device import (
DEVICE_DEFAULT_SCAN_INTERVAL,
DEVICE_DEFAULT_SCAN_WINDOW,
Advertisement,
AdvertisingParameters,
AdvertisingEventProperties,
AdvertisingType,
Device,
)
from bumble.gatt import Service
from bumble.hci import (
HCI_CONNECTION_ALREADY_EXISTS_ERROR,
HCI_PAGE_TIMEOUT_ERROR,
HCI_REMOTE_USER_TERMINATED_CONNECTION_ERROR,
Address,
Phy,
Role,
OwnAddressType,
)
import grpc
import grpc.aio
from google.protobuf import any_pb2 # pytype: disable=pyi-error
from google.protobuf import empty_pb2 # pytype: disable=pyi-error
from pandora.host_grpc_aio import HostServicer
from pandora import host_pb2
from pandora.host_grpc_aio import HostServicer
from pandora.host_pb2 import (
DISCOVERABLE_GENERAL,
DISCOVERABLE_LIMITED,
NOT_CONNECTABLE,
NOT_DISCOVERABLE,
DISCOVERABLE_LIMITED,
DISCOVERABLE_GENERAL,
PRIMARY_1M,
PRIMARY_CODED,
SECONDARY_1M,
@@ -85,7 +57,37 @@ from pandora.host_pb2 import (
WaitConnectionResponse,
WaitDisconnectionRequest,
)
from typing import AsyncGenerator, Optional, cast
import bumble.device
import bumble.utils
from bumble.core import (
UUID,
AdvertisingData,
Appearance,
ConnectionError,
PhysicalTransport,
)
from bumble.device import (
DEVICE_DEFAULT_SCAN_INTERVAL,
DEVICE_DEFAULT_SCAN_WINDOW,
Advertisement,
AdvertisingEventProperties,
AdvertisingParameters,
AdvertisingType,
Device,
)
from bumble.gatt import Service
from bumble.hci import (
HCI_CONNECTION_ALREADY_EXISTS_ERROR,
HCI_PAGE_TIMEOUT_ERROR,
HCI_REMOTE_USER_TERMINATED_CONNECTION_ERROR,
Address,
OwnAddressType,
Phy,
Role,
)
from bumble.pandora import utils
from bumble.pandora.config import Config
PRIMARY_PHY_MAP: dict[int, PrimaryPhy] = {
# Default value reported by Bumble for legacy Advertising reports.

View File

@@ -12,31 +12,21 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from __future__ import annotations
import asyncio
import grpc
import json
import logging
from asyncio import Future
from asyncio import Queue as AsyncQueue
from dataclasses import dataclass
from typing import AsyncGenerator, Optional, Union
from asyncio import Queue as AsyncQueue, Future
from bumble.pandora import utils
from bumble.pandora.config import Config
from bumble.core import OutOfResourcesError, InvalidArgumentError
from bumble.device import Device
from bumble.l2cap import (
ClassicChannel,
ClassicChannelServer,
ClassicChannelSpec,
LeCreditBasedChannel,
LeCreditBasedChannelServer,
LeCreditBasedChannelSpec,
)
import grpc
from google.protobuf import any_pb2, empty_pb2 # pytype: disable=pyi-error
from pandora.l2cap_grpc_aio import L2CAPServicer # pytype: disable=pyi-error
from pandora.l2cap_pb2 import ( # pytype: disable=pyi-error
COMMAND_NOT_UNDERSTOOD,
INVALID_CID_IN_REQUEST,
Channel as PandoraChannel,
from pandora.l2cap_pb2 import COMMAND_NOT_UNDERSTOOD, INVALID_CID_IN_REQUEST
from pandora.l2cap_pb2 import Channel as PandoraChannel # pytype: disable=pyi-error
from pandora.l2cap_pb2 import (
ConnectRequest,
ConnectResponse,
CreditBasedChannelRequest,
@@ -51,8 +41,19 @@ from pandora.l2cap_pb2 import ( # pytype: disable=pyi-error
WaitDisconnectionRequest,
WaitDisconnectionResponse,
)
from typing import AsyncGenerator, Optional, Union
from dataclasses import dataclass
from bumble.core import InvalidArgumentError, OutOfResourcesError
from bumble.device import Device
from bumble.l2cap import (
ClassicChannel,
ClassicChannelServer,
ClassicChannelSpec,
LeCreditBasedChannel,
LeCreditBasedChannelServer,
LeCreditBasedChannelSpec,
)
from bumble.pandora import utils
from bumble.pandora.config import Config
L2capChannel = Union[ClassicChannel, LeCreditBasedChannel]

View File

@@ -13,24 +13,14 @@
# limitations under the License.
from __future__ import annotations
import asyncio
import contextlib
from collections.abc import Awaitable
import grpc
import logging
from collections.abc import Awaitable
from typing import Any, AsyncGenerator, AsyncIterator, Callable, Optional, Union
from bumble.pandora import utils
from bumble.pandora.config import Config
from bumble import hci
from bumble.core import (
PhysicalTransport,
ProtocolError,
InvalidArgumentError,
)
import bumble.utils
from bumble.device import Connection as BumbleConnection, Device
from bumble.hci import HCI_Error, Role
from bumble.pairing import PairingConfig, PairingDelegate as BasePairingDelegate
import grpc
from google.protobuf import any_pb2 # pytype: disable=pyi-error
from google.protobuf import empty_pb2 # pytype: disable=pyi-error
from google.protobuf import wrappers_pb2 # pytype: disable=pyi-error
@@ -57,7 +47,17 @@ from pandora.security_pb2 import (
WaitSecurityRequest,
WaitSecurityResponse,
)
from typing import Any, AsyncGenerator, AsyncIterator, Callable, Optional, Union
import bumble.utils
from bumble import hci
from bumble.core import InvalidArgumentError, PhysicalTransport, ProtocolError
from bumble.device import Connection as BumbleConnection
from bumble.device import Device
from bumble.hci import HCI_Error, Role
from bumble.pairing import PairingConfig
from bumble.pairing import PairingDelegate as BasePairingDelegate
from bumble.pandora import utils
from bumble.pandora.config import Config
class PairingDelegate(BasePairingDelegate):

View File

@@ -13,16 +13,18 @@
# limitations under the License.
from __future__ import annotations
import contextlib
import functools
import grpc
import inspect
import logging
from typing import Any, Generator, MutableMapping, Optional
import grpc
from google.protobuf.message import Message # pytype: disable=pyi-error
from bumble.device import Device
from bumble.hci import Address, AddressType
from google.protobuf.message import Message # pytype: disable=pyi-error
from typing import Any, Generator, MutableMapping, Optional
ADDRESS_TYPES: dict[str, AddressType] = {
"public": Address.PUBLIC_DEVICE_ADDRESS,

View File

@@ -18,26 +18,27 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import logging
import struct
from dataclasses import dataclass
from typing import Optional
from bumble.device import Connection
from bumble import utils
from bumble.att import ATT_Error
from bumble.device import Connection
from bumble.gatt import (
GATT_AUDIO_INPUT_CONTROL_POINT_CHARACTERISTIC,
GATT_AUDIO_INPUT_CONTROL_SERVICE,
GATT_AUDIO_INPUT_DESCRIPTION_CHARACTERISTIC,
GATT_AUDIO_INPUT_STATE_CHARACTERISTIC,
GATT_AUDIO_INPUT_STATUS_CHARACTERISTIC,
GATT_AUDIO_INPUT_TYPE_CHARACTERISTIC,
GATT_GAIN_SETTINGS_ATTRIBUTE_CHARACTERISTIC,
Attribute,
Characteristic,
TemplateService,
CharacteristicValue,
GATT_AUDIO_INPUT_CONTROL_SERVICE,
GATT_AUDIO_INPUT_STATE_CHARACTERISTIC,
GATT_GAIN_SETTINGS_ATTRIBUTE_CHARACTERISTIC,
GATT_AUDIO_INPUT_TYPE_CHARACTERISTIC,
GATT_AUDIO_INPUT_STATUS_CHARACTERISTIC,
GATT_AUDIO_INPUT_CONTROL_POINT_CHARACTERISTIC,
GATT_AUDIO_INPUT_DESCRIPTION_CHARACTERISTIC,
TemplateService,
)
from bumble.gatt_adapters import (
CharacteristicProxy,
@@ -48,7 +49,6 @@ from bumble.gatt_adapters import (
UTF8CharacteristicProxyAdapter,
)
from bumble.gatt_client import ProfileServiceProxy, ServiceProxy
from bumble import utils
# -----------------------------------------------------------------------------
# Logging

View File

@@ -20,25 +20,24 @@ Apple Media Service (AMS).
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import asyncio
import dataclasses
import enum
import logging
from typing import Optional, Iterable, Union
from typing import Iterable, Optional, Union
from bumble import utils
from bumble.device import Peer
from bumble.gatt import (
Characteristic,
GATT_AMS_SERVICE,
GATT_AMS_REMOTE_COMMAND_CHARACTERISTIC,
GATT_AMS_ENTITY_UPDATE_CHARACTERISTIC,
GATT_AMS_ENTITY_ATTRIBUTE_CHARACTERISTIC,
GATT_AMS_ENTITY_UPDATE_CHARACTERISTIC,
GATT_AMS_REMOTE_COMMAND_CHARACTERISTIC,
GATT_AMS_SERVICE,
Characteristic,
TemplateService,
)
from bumble.gatt_client import CharacteristicProxy, ProfileServiceProxy, ServiceProxy
from bumble import utils
# -----------------------------------------------------------------------------
# Logging

View File

@@ -20,6 +20,7 @@ Apple Notification Center Service (ANCS).
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import asyncio
import dataclasses
import datetime
@@ -28,21 +29,19 @@ import logging
import struct
from typing import Optional, Sequence, Union
from bumble import utils
from bumble.att import ATT_Error
from bumble.device import Peer
from bumble.gatt import (
Characteristic,
GATT_ANCS_SERVICE,
GATT_ANCS_NOTIFICATION_SOURCE_CHARACTERISTIC,
GATT_ANCS_CONTROL_POINT_CHARACTERISTIC,
GATT_ANCS_DATA_SOURCE_CHARACTERISTIC,
GATT_ANCS_NOTIFICATION_SOURCE_CHARACTERISTIC,
GATT_ANCS_SERVICE,
Characteristic,
TemplateService,
)
from bumble.gatt_client import CharacteristicProxy, ProfileServiceProxy, ServiceProxy
from bumble.gatt_adapters import SerializableCharacteristicProxyAdapter
from bumble import utils
from bumble.gatt_client import CharacteristicProxy, ProfileServiceProxy, ServiceProxy
# -----------------------------------------------------------------------------
# Constants

View File

@@ -18,22 +18,17 @@
# -----------------------------------------------------------------------------
from __future__ import annotations
from dataclasses import dataclass, field
import enum
import functools
import logging
import struct
from typing import Any, Optional, Union, TypeVar
from collections.abc import Sequence
from dataclasses import dataclass, field
from typing import Any, Optional, TypeVar, Union
from bumble import utils
from bumble import colors
from bumble.profiles.bap import CodecSpecificConfiguration
from bumble import colors, device, gatt, gatt_client, hci, utils
from bumble.profiles import le_audio
from bumble import device
from bumble import gatt
from bumble import gatt_client
from bumble import hci
from bumble.profiles.bap import CodecSpecificConfiguration
# -----------------------------------------------------------------------------
# Logging

View File

@@ -17,16 +17,13 @@
# Imports
# -----------------------------------------------------------------------------
import enum
import struct
import logging
from typing import Optional, Callable, Union, Any
import struct
from typing import Any, Callable, Optional, Union
from bumble import l2cap
from bumble import utils
from bumble import gatt
from bumble import gatt_client
from bumble import gatt, gatt_client, l2cap, utils
from bumble.core import AdvertisingData
from bumble.device import Device, Connection
from bumble.device import Connection, Device
# -----------------------------------------------------------------------------
# Logging

View File

@@ -18,21 +18,18 @@
# -----------------------------------------------------------------------------
from __future__ import annotations
from collections.abc import Sequence
import dataclasses
import enum
import struct
import functools
import logging
import struct
from collections.abc import Sequence
from typing_extensions import Self
from bumble import core
from bumble import hci
from bumble import gatt
from bumble import utils
from bumble import core, gatt, hci, utils
from bumble.profiles import le_audio
# -----------------------------------------------------------------------------
# Logging
# -----------------------------------------------------------------------------

View File

@@ -17,18 +17,13 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import dataclasses
import logging
import struct
from typing import ClassVar, Optional, Sequence
from bumble import core
from bumble import device
from bumble import gatt
from bumble import gatt_adapters
from bumble import gatt_client
from bumble import hci
from bumble import utils
from bumble import core, device, gatt, gatt_adapters, gatt_client, hci, utils
# -----------------------------------------------------------------------------
# Logging

View File

@@ -18,19 +18,18 @@
# -----------------------------------------------------------------------------
from typing import Optional
from bumble.gatt_client import ProfileServiceProxy
from bumble.gatt import (
GATT_BATTERY_SERVICE,
GATT_BATTERY_LEVEL_CHARACTERISTIC,
TemplateService,
GATT_BATTERY_SERVICE,
Characteristic,
CharacteristicValue,
TemplateService,
)
from bumble.gatt_client import CharacteristicProxy
from bumble.gatt_adapters import (
PackedCharacteristicAdapter,
PackedCharacteristicProxyAdapter,
)
from bumble.gatt_client import CharacteristicProxy, ProfileServiceProxy
# -----------------------------------------------------------------------------

View File

@@ -18,8 +18,7 @@
# -----------------------------------------------------------------------------
from __future__ import annotations
from bumble import gatt
from bumble import gatt_client
from bumble import gatt, gatt_client
from bumble.profiles import csip

View File

@@ -17,16 +17,12 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import enum
import struct
from typing import Optional
from bumble import core
from bumble import crypto
from bumble import device
from bumble import gatt
from bumble import gatt_client
from bumble import core, crypto, device, gatt, gatt_client
# -----------------------------------------------------------------------------
# Constants

View File

@@ -25,12 +25,12 @@ from bumble.gatt import (
GATT_HARDWARE_REVISION_STRING_CHARACTERISTIC,
GATT_MANUFACTURER_NAME_STRING_CHARACTERISTIC,
GATT_MODEL_NUMBER_STRING_CHARACTERISTIC,
GATT_REGULATORY_CERTIFICATION_DATA_LIST_CHARACTERISTIC,
GATT_SERIAL_NUMBER_STRING_CHARACTERISTIC,
GATT_SOFTWARE_REVISION_STRING_CHARACTERISTIC,
GATT_SYSTEM_ID_CHARACTERISTIC,
GATT_REGULATORY_CERTIFICATION_DATA_LIST_CHARACTERISTIC,
TemplateService,
Characteristic,
TemplateService,
)
from bumble.gatt_adapters import (
DelegatedCharacteristicProxyAdapter,

View File

@@ -23,11 +23,11 @@ from typing import Optional, Union
from bumble.core import Appearance
from bumble.gatt import (
TemplateService,
Characteristic,
GATT_GENERIC_ACCESS_SERVICE,
GATT_DEVICE_NAME_CHARACTERISTIC,
GATT_APPEARANCE_CHARACTERISTIC,
GATT_DEVICE_NAME_CHARACTERISTIC,
GATT_GENERIC_ACCESS_SERVICE,
Characteristic,
TemplateService,
)
from bumble.gatt_adapters import (
DelegatedCharacteristicProxyAdapter,

View File

@@ -17,10 +17,7 @@ from __future__ import annotations
import struct
from typing import TYPE_CHECKING
from bumble import att
from bumble import gatt
from bumble import gatt_client
from bumble import crypto
from bumble import att, crypto, gatt, gatt_client
if TYPE_CHECKING:
from bumble import device

View File

@@ -18,21 +18,21 @@
# Imports
# -----------------------------------------------------------------------------
import struct
from enum import IntFlag
from typing import Optional
from bumble.gatt import (
TemplateService,
Characteristic,
GATT_BGR_FEATURES_CHARACTERISTIC,
GATT_BGS_FEATURES_CHARACTERISTIC,
GATT_GAMING_AUDIO_SERVICE,
GATT_GMAP_ROLE_CHARACTERISTIC,
GATT_UGG_FEATURES_CHARACTERISTIC,
GATT_UGT_FEATURES_CHARACTERISTIC,
GATT_BGS_FEATURES_CHARACTERISTIC,
GATT_BGR_FEATURES_CHARACTERISTIC,
Characteristic,
TemplateService,
)
from bumble.gatt_adapters import DelegatedCharacteristicProxyAdapter
from bumble.gatt_client import CharacteristicProxy, ProfileServiceProxy, ServiceProxy
from enum import IntFlag
# -----------------------------------------------------------------------------

View File

@@ -16,16 +16,16 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import asyncio
import functools
from dataclasses import dataclass, field
import logging
from dataclasses import dataclass, field
from typing import Any, Optional, Union
from bumble import att, gatt, gatt_adapters, gatt_client
from bumble import att, gatt, gatt_adapters, gatt_client, utils
from bumble.core import InvalidArgumentError, InvalidStateError
from bumble.device import Device, Connection
from bumble import utils
from bumble.device import Connection, Device
from bumble.hci import Address

View File

@@ -17,20 +17,21 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
from enum import IntEnum
import struct
from enum import IntEnum
from typing import Optional
from bumble import core
from bumble.att import ATT_Error
from bumble.gatt import (
GATT_HEART_RATE_SERVICE,
GATT_HEART_RATE_MEASUREMENT_CHARACTERISTIC,
GATT_BODY_SENSOR_LOCATION_CHARACTERISTIC,
GATT_HEART_RATE_CONTROL_POINT_CHARACTERISTIC,
TemplateService,
GATT_HEART_RATE_MEASUREMENT_CHARACTERISTIC,
GATT_HEART_RATE_SERVICE,
Characteristic,
CharacteristicValue,
TemplateService,
)
from bumble.gatt_adapters import (
DelegatedCharacteristicAdapter,

View File

@@ -16,14 +16,16 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import dataclasses
import enum
import struct
from typing import Any
from typing_extensions import Self
from bumble.profiles import bap
from bumble import utils
from bumble.profiles import bap
# -----------------------------------------------------------------------------

View File

@@ -22,16 +22,12 @@ import asyncio
import dataclasses
import enum
import struct
from typing import TYPE_CHECKING, ClassVar, Optional
from bumble import core
from bumble import device
from bumble import gatt
from bumble import gatt_client
from bumble import utils
from typing import Optional, ClassVar, TYPE_CHECKING
from typing_extensions import Self
from bumble import core, device, gatt, gatt_client, utils
# -----------------------------------------------------------------------------
# Constants
# -----------------------------------------------------------------------------

View File

@@ -17,18 +17,15 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import dataclasses
import logging
import struct
from typing import Optional, Sequence, Union
from bumble.profiles.bap import AudioLocation, CodecSpecificCapabilities, ContextType
from bumble import gatt, gatt_adapters, gatt_client, hci
from bumble.profiles import le_audio
from bumble import gatt
from bumble import gatt_adapters
from bumble import gatt_client
from bumble import hci
from bumble.profiles.bap import AudioLocation, CodecSpecificCapabilities, ContextType
# -----------------------------------------------------------------------------
# Logging

View File

@@ -16,8 +16,10 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import dataclasses
import enum
from typing_extensions import Self
from bumble.profiles import le_audio

View File

@@ -22,15 +22,14 @@ import logging
import struct
from bumble.gatt import (
TemplateService,
Characteristic,
GATT_TELEPHONY_AND_MEDIA_AUDIO_SERVICE,
GATT_TMAP_ROLE_CHARACTERISTIC,
Characteristic,
TemplateService,
)
from bumble.gatt_adapters import DelegatedCharacteristicProxyAdapter
from bumble.gatt_client import CharacteristicProxy, ProfileServiceProxy, ServiceProxy
# -----------------------------------------------------------------------------
# Logging
# -----------------------------------------------------------------------------

View File

@@ -17,18 +17,12 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import dataclasses
import enum
from typing import Sequence
from bumble import att
from bumble import utils
from bumble import device
from bumble import gatt
from bumble import gatt_adapters
from bumble import gatt_client
from bumble import att, device, gatt, gatt_adapters, gatt_client, utils
# -----------------------------------------------------------------------------
# Constants

View File

@@ -20,17 +20,18 @@ import struct
from dataclasses import dataclass
from typing import Optional
from bumble.device import Connection
from bumble import utils
from bumble.att import ATT_Error
from bumble.device import Connection
from bumble.gatt import (
Characteristic,
TemplateService,
CharacteristicValue,
GATT_AUDIO_LOCATION_CHARACTERISTIC,
GATT_AUDIO_OUTPUT_DESCRIPTION_CHARACTERISTIC,
GATT_VOLUME_OFFSET_CONTROL_POINT_CHARACTERISTIC,
GATT_VOLUME_OFFSET_CONTROL_SERVICE,
GATT_VOLUME_OFFSET_STATE_CHARACTERISTIC,
GATT_AUDIO_LOCATION_CHARACTERISTIC,
GATT_VOLUME_OFFSET_CONTROL_POINT_CHARACTERISTIC,
GATT_AUDIO_OUTPUT_DESCRIPTION_CHARACTERISTIC,
Characteristic,
CharacteristicValue,
TemplateService,
)
from bumble.gatt_adapters import (
DelegatedCharacteristicProxyAdapter,
@@ -38,7 +39,6 @@ from bumble.gatt_adapters import (
UTF8CharacteristicProxyAdapter,
)
from bumble.gatt_client import ProfileServiceProxy, ServiceProxy
from bumble import utils
from bumble.profiles.bap import AudioLocation
# -----------------------------------------------------------------------------

View File

@@ -17,33 +17,30 @@
# -----------------------------------------------------------------------------
from __future__ import annotations
import logging
import asyncio
import collections
import dataclasses
import enum
from typing import Callable, Optional, Union, TYPE_CHECKING
import logging
from typing import TYPE_CHECKING, Callable, Optional, Union
from typing_extensions import Self
from bumble import core
from bumble import l2cap
from bumble import sdp
from bumble import utils
from bumble import core, l2cap, sdp, utils
from bumble.colors import color
from bumble.core import (
UUID,
BT_RFCOMM_PROTOCOL_ID,
PhysicalTransport,
BT_L2CAP_PROTOCOL_ID,
BT_RFCOMM_PROTOCOL_ID,
UUID,
InvalidArgumentError,
InvalidStateError,
InvalidPacketError,
InvalidStateError,
PhysicalTransport,
ProtocolError,
)
if TYPE_CHECKING:
from bumble.device import Device, Connection
from bumble.device import Connection, Device
# -----------------------------------------------------------------------------
# Logging

View File

@@ -16,6 +16,7 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import struct

View File

@@ -16,24 +16,26 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import asyncio
import logging
import struct
from typing import Iterable, NewType, Optional, Union, Sequence, TYPE_CHECKING
from typing import TYPE_CHECKING, Iterable, NewType, Optional, Sequence, Union
from typing_extensions import Self
from bumble import core, l2cap
from bumble.colors import color
from bumble.core import (
InvalidStateError,
InvalidArgumentError,
InvalidPacketError,
InvalidStateError,
ProtocolError,
)
from bumble.hci import HCI_Object, name_or_number, key_with_value
from bumble.hci import HCI_Object, key_with_value, name_or_number
if TYPE_CHECKING:
from bumble.device import Device, Connection
from bumble.device import Connection, Device
# -----------------------------------------------------------------------------
# Logging

View File

@@ -23,42 +23,41 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import logging
import asyncio
import enum
import logging
from dataclasses import dataclass, field
from typing import (
TYPE_CHECKING,
Any,
Awaitable,
Callable,
ClassVar,
Optional,
TypeVar,
ClassVar,
cast,
)
from bumble import crypto, utils
from bumble.colors import color
from bumble.hci import (
Address,
Role,
HCI_LE_Enable_Encryption_Command,
HCI_Object,
Fields,
key_with_value,
metadata,
)
from bumble.core import (
PhysicalTransport,
AdvertisingData,
InvalidArgumentError,
PhysicalTransport,
ProtocolError,
name_or_number,
)
from bumble.hci import (
Address,
Fields,
HCI_LE_Enable_Encryption_Command,
HCI_Object,
Role,
key_with_value,
metadata,
)
from bumble.keys import PairingKeys
from bumble import crypto
from bumble import utils
if TYPE_CHECKING:
from bumble.device import Connection, Device

View File

@@ -12,21 +12,21 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import datetime
import logging
import os
import struct
# -----------------------------------------------------------------------------
# Imports
# -----------------------------------------------------------------------------
from contextlib import contextmanager
from enum import IntEnum
import logging
import struct
import datetime
from typing import BinaryIO, Generator
import os
from bumble import core
from bumble.hci import HCI_COMMAND_PACKET, HCI_EVENT_PACKET
# -----------------------------------------------------------------------------
# Logging
# -----------------------------------------------------------------------------

View File

@@ -12,21 +12,18 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import logging
import os
# -----------------------------------------------------------------------------
# Imports
# -----------------------------------------------------------------------------
from contextlib import asynccontextmanager
import logging
import os
from typing import Optional
from bumble import utils
from bumble.transport.common import (
Transport,
SnoopingTransport,
TransportSpecError,
)
from bumble.snoop import create_snooper
from bumble.transport.common import SnoopingTransport, Transport, TransportSpecError
# -----------------------------------------------------------------------------
# Logging

View File

@@ -16,28 +16,27 @@
# Imports
# -----------------------------------------------------------------------------
import logging
import grpc.aio
from typing import Optional, Union
import grpc.aio
from bumble.transport.common import (
PumpedTransport,
PumpedPacketSource,
PumpedPacketSink,
PumpedPacketSource,
PumpedTransport,
Transport,
TransportSpecError,
)
# pylint: disable=no-name-in-module
from bumble.transport.grpc_protobuf.emulated_bluetooth_packets_pb2 import HCIPacket
from bumble.transport.grpc_protobuf.emulated_bluetooth_pb2_grpc import (
EmulatedBluetoothServiceStub,
)
from bumble.transport.grpc_protobuf.emulated_bluetooth_packets_pb2 import HCIPacket
from bumble.transport.grpc_protobuf.emulated_bluetooth_vhci_pb2_grpc import (
VhciForwardingServiceStub,
)
# -----------------------------------------------------------------------------
# Logging
# -----------------------------------------------------------------------------

View File

@@ -29,28 +29,27 @@ import grpc.aio
import bumble
from bumble.transport.common import (
ParserSource,
PumpedTransport,
PumpedPacketSource,
PumpedPacketSink,
PumpedPacketSource,
PumpedTransport,
Transport,
TransportSpecError,
TransportInitError,
TransportSpecError,
)
# pylint: disable=no-name-in-module
from bumble.transport.grpc_protobuf.netsim.packet_streamer_pb2_grpc import (
PacketStreamerStub,
PacketStreamerServicer,
add_PacketStreamerServicer_to_server,
)
from bumble.transport.grpc_protobuf.netsim.common_pb2 import ChipKind
from bumble.transport.grpc_protobuf.netsim.hci_packet_pb2 import HCIPacket
from bumble.transport.grpc_protobuf.netsim.packet_streamer_pb2 import (
PacketRequest,
PacketResponse,
)
from bumble.transport.grpc_protobuf.netsim.hci_packet_pb2 import HCIPacket
from bumble.transport.grpc_protobuf.netsim.packet_streamer_pb2_grpc import (
PacketStreamerServicer,
PacketStreamerStub,
add_PacketStreamerServicer_to_server,
)
from bumble.transport.grpc_protobuf.netsim.startup_pb2 import Chip, ChipInfo, DeviceInfo
from bumble.transport.grpc_protobuf.netsim.common_pb2 import ChipKind
# -----------------------------------------------------------------------------
# Logging

View File

@@ -16,19 +16,18 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import contextlib
import struct
import asyncio
import logging
import contextlib
import io
import logging
import struct
from typing import Any, ContextManager, Optional, Protocol
from bumble import core
from bumble import hci
from bumble import core, hci
from bumble.colors import color
from bumble.snoop import Snooper
# -----------------------------------------------------------------------------
# Logging
# -----------------------------------------------------------------------------

View File

@@ -19,7 +19,7 @@ import asyncio
import io
import logging
from bumble.transport.common import Transport, StreamPacketSource, StreamPacketSink
from bumble.transport.common import StreamPacketSink, StreamPacketSource, Transport
# -----------------------------------------------------------------------------
# Logging

View File

@@ -16,17 +16,15 @@
# Imports
# -----------------------------------------------------------------------------
import asyncio
import collections
import ctypes
import logging
import struct
import os
import socket
import ctypes
import collections
import struct
from typing import Optional
from bumble.transport.common import Transport, ParserSource
from bumble.transport.common import ParserSource, Transport
# -----------------------------------------------------------------------------
# Logging

View File

@@ -16,16 +16,15 @@
# Imports
# -----------------------------------------------------------------------------
import asyncio
import atexit
import io
import logging
import os
import pty
import tty
import io
import atexit
import os
import logging
from typing import Optional
from bumble.transport.common import Transport, StreamPacketSource, StreamPacketSink
from bumble.transport.common import StreamPacketSink, StreamPacketSource, Transport
# -----------------------------------------------------------------------------
# Logging

View File

@@ -19,20 +19,18 @@ import asyncio
import logging
import threading
import time
from typing import Optional
import usb.core
import usb.util
from typing import Optional
from usb.core import Device as UsbDevice
from usb.core import USBError
from usb.util import CTRL_TYPE_CLASS, CTRL_RECIPIENT_OTHER
from usb.legacy import REQ_SET_FEATURE, REQ_CLEAR_FEATURE, CLASS_HUB
from usb.legacy import CLASS_HUB, REQ_CLEAR_FEATURE, REQ_SET_FEATURE
from usb.util import CTRL_RECIPIENT_OTHER, CTRL_TYPE_CLASS
from bumble.transport.common import Transport, ParserSource, TransportInitError
from bumble import hci
from bumble.colors import color
from bumble.transport.common import ParserSource, Transport, TransportInitError
# -----------------------------------------------------------------------------
# Constant

View File

@@ -17,9 +17,10 @@
# -----------------------------------------------------------------------------
import asyncio
import logging
import serial_asyncio
from bumble.transport.common import Transport, StreamPacketSource, StreamPacketSink
from bumble.transport.common import StreamPacketSink, StreamPacketSource, Transport
# -----------------------------------------------------------------------------
# Logging

View File

@@ -18,7 +18,7 @@
import asyncio
import logging
from bumble.transport.common import Transport, StreamPacketSource, StreamPacketSink
from bumble.transport.common import StreamPacketSink, StreamPacketSource, Transport
# -----------------------------------------------------------------------------
# Logging

View File

@@ -16,11 +16,12 @@
# Imports
# -----------------------------------------------------------------------------
from __future__ import annotations
import asyncio
import logging
import socket
from bumble.transport.common import Transport, StreamPacketSource
from bumble.transport.common import StreamPacketSource, Transport
# -----------------------------------------------------------------------------
# Logging

View File

@@ -18,7 +18,7 @@
import asyncio
import logging
from bumble.transport.common import Transport, ParserSource
from bumble.transport.common import ParserSource, Transport
# -----------------------------------------------------------------------------
# Logging

Some files were not shown because too many files have changed in this diff Show More