From 24fcb9038b70d5d028f864c31df193d485502bc3 Mon Sep 17 00:00:00 2001 From: Tim Camise Date: Wed, 6 Dec 2023 12:21:18 -0800 Subject: [PATCH 1/2] Remove duplicate version call in wired gopro --- demos/python/sdk_wireless_camera_control/docs/changelog.rst | 1 + .../sdk_wireless_camera_control/open_gopro/gopro_wired.py | 1 - .../open_gopro/wifi/adapters/wireless.py | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/demos/python/sdk_wireless_camera_control/docs/changelog.rst b/demos/python/sdk_wireless_camera_control/docs/changelog.rst index 7cd906aa..fe3bb040 100644 --- a/demos/python/sdk_wireless_camera_control/docs/changelog.rst +++ b/demos/python/sdk_wireless_camera_control/docs/changelog.rst @@ -14,6 +14,7 @@ Unreleased * Add alpha support for COHN (Camera-on-the-Home-Network) * A real implementation is going to require a major rearchitecture to dynamically add connection types. * Remove TKinter GUI. Will be replaced with Textual TUI in the future +* Improve wifi SSID matching 0.14.1 (September-21-2022) -------------------------- diff --git a/demos/python/sdk_wireless_camera_control/open_gopro/gopro_wired.py b/demos/python/sdk_wireless_camera_control/open_gopro/gopro_wired.py index 262452fe..ef1db4ce 100644 --- a/demos/python/sdk_wireless_camera_control/open_gopro/gopro_wired.py +++ b/demos/python/sdk_wireless_camera_control/open_gopro/gopro_wired.py @@ -144,7 +144,6 @@ async def open(self, timeout: int = 10, retries: int = 1) -> None: await self.http_command.wired_usb_control(control=Params.Toggle.ENABLE) # Find and configure API version - version = await self.http_command.get_open_gopro_api_version() if (version := (await self.http_command.get_open_gopro_api_version()).data) != self.version: raise GpException.InvalidOpenGoProVersion(version) logger.info(f"Using Open GoPro API version {version}") diff --git a/demos/python/sdk_wireless_camera_control/open_gopro/wifi/adapters/wireless.py b/demos/python/sdk_wireless_camera_control/open_gopro/wifi/adapters/wireless.py index 0285e3a3..4f54ed1d 100644 --- a/demos/python/sdk_wireless_camera_control/open_gopro/wifi/adapters/wireless.py +++ b/demos/python/sdk_wireless_camera_control/open_gopro/wifi/adapters/wireless.py @@ -692,7 +692,7 @@ def connect(self, ssid: str, password: str, timeout: float = 15) -> bool: r"/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport --scan" ) lines = response.splitlines() - ssid_end_index = lines[0].index("SSID") + 4 # Find where the SSID column ends + ssid_end_index = lines[0].index("SSID") + 4 # Find where the SSID column ends for result in lines[1:]: # Skip title row current_ssid = result[:ssid_end_index].strip() From b6998d908e1932bcf90313b862a172755f50b284 Mon Sep 17 00:00:00 2001 From: Tim Camise Date: Wed, 6 Dec 2023 12:48:37 -0800 Subject: [PATCH 2/2] Make pydantic custom base model hash method recursive --- .../open_gopro/models/bases.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/demos/python/sdk_wireless_camera_control/open_gopro/models/bases.py b/demos/python/sdk_wireless_camera_control/open_gopro/models/bases.py index dd550fe8..e0eb0d05 100644 --- a/demos/python/sdk_wireless_camera_control/open_gopro/models/bases.py +++ b/demos/python/sdk_wireless_camera_control/open_gopro/models/bases.py @@ -3,6 +3,8 @@ """Base classes shared throughout models""" +import json + from pydantic import BaseModel from open_gopro.util import pretty_print, scrub @@ -12,7 +14,13 @@ class CustomBaseModel(BaseModel): """Additional functionality added to Pydantic BaseModel""" def __hash__(self) -> int: - return hash((type(self),) + tuple(getattr(self, f) for f in self.__fields__.keys())) + h = hash((type(self),)) + for field in self.__fields__.keys(): + if isinstance(field, (dict, list)): + h += json.loads(field) + # Base case + h += hash(field) + return h def __str__(self) -> str: d = dict(self)