From 733fab45b418a410a32bb636c696b660bdca7d30 Mon Sep 17 00:00:00 2001 From: onyx-and-iris <75868496+onyx-and-iris@users.noreply.github.com> Date: Sat, 24 Sep 2022 07:45:28 +0100 Subject: [PATCH] raise VBANCMD error on connection failure. leave teardown procedures to consumer library. (or context manager) --- pyproject.toml | 2 +- vban_cmd/command.py | 1 - vban_cmd/error.py | 2 +- vban_cmd/meta.py | 1 - vban_cmd/worker.py | 13 +++++++------ 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index e8fd923..dacb52b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "vban-cmd" -version = "1.4.3" +version = "1.4.4" description = "Python interface for the VBAN RT Packet Service (Sendtext)" authors = ["onyx-and-iris "] license = "MIT" diff --git a/vban_cmd/command.py b/vban_cmd/command.py index 88fd080..5c77b62 100644 --- a/vban_cmd/command.py +++ b/vban_cmd/command.py @@ -1,4 +1,3 @@ -from .error import VMCMDErrors from .iremote import IRemote from .meta import action_prop diff --git a/vban_cmd/error.py b/vban_cmd/error.py index 909fe12..13252b2 100644 --- a/vban_cmd/error.py +++ b/vban_cmd/error.py @@ -1,4 +1,4 @@ -class VMCMDErrors(Exception): +class VBANCMDError(Exception): """general errors""" pass diff --git a/vban_cmd/meta.py b/vban_cmd/meta.py index 44f6fdb..d776b64 100644 --- a/vban_cmd/meta.py +++ b/vban_cmd/meta.py @@ -1,6 +1,5 @@ from functools import partial -from .error import VMCMDErrors from .util import cache_bool, cache_string diff --git a/vban_cmd/worker.py b/vban_cmd/worker.py index e4030e8..34597b6 100644 --- a/vban_cmd/worker.py +++ b/vban_cmd/worker.py @@ -3,6 +3,7 @@ import threading import time from typing import Optional +from .error import VBANCMDError from .packet import HEADER_SIZE, SubscribeHeader, VbanRtPacket, VbanRtPacketHeader from .util import Socket @@ -26,9 +27,9 @@ class Subscriber(threading.Thread): self.packet.framecounter = count.to_bytes(4, "little") time.sleep(10) except socket.gaierror as e: - print(f"Unable to resolve hostname {self._remote.ip}") - self._remote.socks[Socket.register].close() - raise e + err_msg = f"Unable to resolve hostname {self._remote.ip}" + print(err_msg) + raise VBANCMDError(err_msg) class Updater(threading.Thread): @@ -80,9 +81,9 @@ class Updater(threading.Thread): _busLabelUTF8c60=data[932:1412], ) except TimeoutError as e: - print(f"Unable to establish connection with {self._remote.ip}") - [sock.close() for sock in self._remote.socks] - raise e + err_msg = f"Unable to establish connection with {self._remote.ip}" + print(err_msg) + raise VBANCMDError(err_msg) def _get_rt(self) -> VbanRtPacket: """Attempt to fetch data packet until a valid one found"""