]>
jfr.im git - yt-dlp.git/blob - devscripts/lazy_load_template.py
13 class LazyLoadMetaClass(type):
14 def __getattr__(cls
, name
):
15 # "_TESTS" bloat the lazy_extractors
16 if '_real_class' not in cls
.__dict
__ and name
!= 'get_testcases':
18 'WARNING: Falling back to normal extractor since lazy extractor '
19 f
'{cls.__name__} does not have attribute {name}{bug_reports_message()}\n')
20 return getattr(cls
.real_class
, name
)
23 class LazyLoadExtractor(metaclass
=LazyLoadMetaClass
):
26 if '_real_class' not in cls
.__dict
__:
27 cls
._real
_class
= getattr(importlib
.import_module(cls
._module
), cls
.__name
__)
28 return cls
._real
_class
30 def __new__(cls
, *args
, **kwargs
):
31 instance
= cls
.real_class
.__new
__(cls
.real_class
)
32 instance
.__init
__(*args
, **kwargs
)