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

Handle NoneType exit event #365

Closed jkroll-deepgram closed 2 months ago

jkroll-deepgram commented 2 months ago

Proposed changes

Fix a bug where is_set() is being called on self._exit_event when it has a value of None, causing an AttributeError that bubbles up as an error in application code. To fix, require that self._exit_event is not None before calling self._exit_event.is_set().

I do also see in other spots that events are being initialized as asyncio.Event(). Should the exit event be instantiated as self._exit_event = asyncio.Event() instead of self._exit_event = None, so self._exit_event is never None in the first place?

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

dvonthenen commented 2 months ago

I do also see in other spots that events are being initialized as asyncio.Event(). Should the exit event be instantiated as self._exit_event = asyncio.Event() instead of self._exit_event = None, so self._exit_event is never None in the first place?

I can take a look at this and double check.

dvonthenen commented 2 months ago

I suspect that the event should have been reset and not deleted is the problem. This might have been a copy and paste gone too far. Confirming this now.