diff options
author | pukkandan <pukkandan.ytdlp@gmail.com> | 2021-08-23 04:45:30 +0530 |
---|---|---|
committer | pukkandan <pukkandan.ytdlp@gmail.com> | 2021-08-23 05:06:39 +0530 |
commit | 251ae04e6a057167e4eafaf8b7b565a984b48405 (patch) | |
tree | e468838d6cc734f06df941feea2d23fc2ebcaa3e /devscripts/make_lazy_extractors.py | |
parent | 5bc4a65eea5c59ecddb71499915934190fca7d5c (diff) | |
download | hypervideo-pre-251ae04e6a057167e4eafaf8b7b565a984b48405.tar.lz hypervideo-pre-251ae04e6a057167e4eafaf8b7b565a984b48405.tar.xz hypervideo-pre-251ae04e6a057167e4eafaf8b7b565a984b48405.zip |
[lazy_extractor] Create instance only after pre-checking archive
Diffstat (limited to 'devscripts/make_lazy_extractors.py')
-rw-r--r-- | devscripts/make_lazy_extractors.py | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/devscripts/make_lazy_extractors.py b/devscripts/make_lazy_extractors.py index 8189c77dc..d313e68a9 100644 --- a/devscripts/make_lazy_extractors.py +++ b/devscripts/make_lazy_extractors.py @@ -30,16 +30,14 @@ if os.path.exists(plugins_blocked_dirname): with open('devscripts/lazy_load_template.py', 'rt') as f: module_template = f.read() +CLASS_PROPERTIES = ['ie_key', 'working', '_match_valid_url', 'suitable', '_match_id', 'get_temp_id'] module_contents = [ module_template, - getsource(InfoExtractor.ie_key), - getsource(InfoExtractor._match_valid_url), - getsource(InfoExtractor.suitable), + *[getsource(getattr(InfoExtractor, k)) for k in CLASS_PROPERTIES], '\nclass LazyLoadSearchExtractor(LazyLoadExtractor):\n pass\n'] ie_template = ''' class {name}({bases}): - _VALID_URL = {valid_url!r} _module = '{module}' ''' @@ -60,14 +58,17 @@ def get_base_name(base): def build_lazy_ie(ie, name): - valid_url = getattr(ie, '_VALID_URL', None) s = ie_template.format( name=name, bases=', '.join(map(get_base_name, ie.__bases__)), - valid_url=valid_url, module=ie.__module__) + valid_url = getattr(ie, '_VALID_URL', None) + if valid_url: + s += f' _VALID_URL = {valid_url!r}\n' + if not ie._WORKING: + s += f' _WORKING = False\n' if ie.suitable.__func__ is not InfoExtractor.suitable.__func__: - s += '\n' + getsource(ie.suitable) + s += f'\n{getsource(ie.suitable)}' if hasattr(ie, '_make_valid_url'): # search extractors s += make_valid_template.format(valid_url=ie._make_valid_url()) |