deepgram / deepgram-python-sdk

Official Python SDK for Deepgram's automated speech recognition APIs.
https://developers.deepgram.com
MIT License
178 stars 48 forks source link

Make AsyncLiveClient Similar to LiveClient #338

Closed dvonthenen closed 3 months ago

dvonthenen commented 3 months ago

Proposed changes

The LiveClient has been far more stable than the AsyncLiveClient. This makes both clients similar in flow by shifting the AsyncLiveClient to behave similarly to the LiveClient. The AsyncClient uses a more traditional recv() process for the listening thread which allows us know control paths and when certain signals are set. I simply could not get the initial refactoring of the AsyncClient first done in the v3 architecture mainly due to exception handling.

Changes:

Updated all examples to really hammer the clients this time around. Take a look at tests/edge_cases, which repeatedly connects/disconnects and reuses a single client in a loop without issue.

Types of changes

What types of changes does your code introduce to the community Python SDK? Put an x in the boxes that apply

Checklist

Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

Further comments

NA