aboutsummaryrefslogtreecommitdiffstats
path: root/yt_dlp/utils.py
diff options
context:
space:
mode:
authorLesmiscore (Naoya Ozaki) <nao20010128@gmail.com>2022-03-25 17:24:39 +0900
committerGitHub <noreply@github.com>2022-03-25 17:24:39 +0900
commit3cea3edd1ac1101bd709dfa0305509028118b163 (patch)
treeb285c39d8df9cee1a0a8c80547772cb9c11f7ec3 /yt_dlp/utils.py
parentb1a7cd056a4613b49f93aa249f6c7ecf5a828185 (diff)
downloadhypervideo-pre-3cea3edd1ac1101bd709dfa0305509028118b163.tar.lz
hypervideo-pre-3cea3edd1ac1101bd709dfa0305509028118b163.tar.xz
hypervideo-pre-3cea3edd1ac1101bd709dfa0305509028118b163.zip
[utils] WebSocketsWrapper: Allow omitting `__enter__` invocation (#3187)
Authored by: Lesmiscore
Diffstat (limited to 'yt_dlp/utils.py')
-rw-r--r--yt_dlp/utils.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py
index 4de5f9626..e359c6bba 100644
--- a/yt_dlp/utils.py
+++ b/yt_dlp/utils.py
@@ -5436,15 +5436,18 @@ class Config:
class WebSocketsWrapper():
"""Wraps websockets module to use in non-async scopes"""
- def __init__(self, url, headers=None):
+ def __init__(self, url, headers=None, connect=True):
self.loop = asyncio.events.new_event_loop()
self.conn = compat_websockets.connect(
url, extra_headers=headers, ping_interval=None,
close_timeout=float('inf'), loop=self.loop, ping_timeout=float('inf'))
+ if connect:
+ self.__enter__()
atexit.register(self.__exit__, None, None, None)
def __enter__(self):
- self.pool = self.run_with_loop(self.conn.__aenter__(), self.loop)
+ if not self.pool:
+ self.pool = self.run_with_loop(self.conn.__aenter__(), self.loop)
return self
def send(self, *args):