1
0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-10-04 19:36:18 -04:00

[utils] Make ExtractorError mutable

This commit is contained in:
pukkandan
2022-11-30 06:10:26 +05:30
parent 71eb82d1b2
commit 9bcfe33be7
2 changed files with 19 additions and 16 deletions

View File

@@ -1095,13 +1095,16 @@ class ExtractorError(YoutubeDLError):
self.exc_info = sys.exc_info() # preserve original exception
if isinstance(self.exc_info[1], ExtractorError):
self.exc_info = self.exc_info[1].exc_info
super().__init__(self.__msg)
super().__init__(''.join((
format_field(ie, None, '[%s] '),
format_field(video_id, None, '%s: '),
msg,
format_field(cause, None, ' (caused by %r)'),
'' if expected else bug_reports_message())))
@property
def __msg(self):
return ''.join((
format_field(self.ie, None, '[%s] '),
format_field(self.video_id, None, '%s: '),
self.orig_msg,
format_field(self.cause, None, ' (caused by %r)'),
'' if self.expected else bug_reports_message()))
def format_traceback(self):
return join_nonempty(
@@ -1109,6 +1112,12 @@ class ExtractorError(YoutubeDLError):
self.cause and ''.join(traceback.format_exception(None, self.cause, self.cause.__traceback__)[1:]),
delim='\n') or None
def __setattr__(self, name, value):
super().__setattr__(name, value)
if getattr(self, 'msg', None) and name not in ('msg', 'args'):
self.msg = self.__msg or type(self).__name__
self.args = (self.msg, ) # Cannot be property
class UnsupportedError(ExtractorError):
def __init__(self, url):