Wrap send()-induced socket.errors inside the BulbException
Instead of raising the exception as it is, wrap it inside the BulbException for easier handling on downstream. Using raise_from allows downstream also to get the full stacktrace if needed.
Instead of raising the exception as it is, wrap it inside the BulbException for easier handling on downstream. Using raise_from allows downstream also to get the full stacktrace if needed.