about summary refs log tree commit diff
path: root/youtube_dl/extractor/__init__.py
diff options
context:
space:
mode:
authorJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>2016-02-10 14:01:31 +0100
committerJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>2016-04-08 21:50:07 +0200
commit779822d945dc7ebba7062ac9a5e760d21a7f362a (patch)
tree67249610d26b853a462467c2f46ac3117a350d15 /youtube_dl/extractor/__init__.py
parent1b3d5e05a824f880f1171eb840235e13cd8848dc (diff)
downloadyoutube-dl-779822d945dc7ebba7062ac9a5e760d21a7f362a.tar.gz
youtube-dl-779822d945dc7ebba7062ac9a5e760d21a7f362a.tar.xz
youtube-dl-779822d945dc7ebba7062ac9a5e760d21a7f362a.zip
Add experimental support for lazy loading the info extractors
'make lazy-extractors' creates the youtube_dl/extractor/lazy_extractors.py (imported by youtube_dl/extractor/__init__.py), which contains simplified classes that only have the 'suitable' class method and that load the appropiate class with the '__new__' method when a instance is created.
Diffstat (limited to 'youtube_dl/extractor/__init__.py')
-rw-r--r--youtube_dl/extractor/__init__.py20
1 files changed, 12 insertions, 8 deletions
diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py
index a0a53445a..b0d4d156b 100644
--- a/youtube_dl/extractor/__init__.py
+++ b/youtube_dl/extractor/__init__.py
@@ -1,13 +1,17 @@
 from __future__ import unicode_literals
 
-from .extractors import *
-
-_ALL_CLASSES = [
-    klass
-    for name, klass in globals().items()
-    if name.endswith('IE') and name != 'GenericIE'
-]
-_ALL_CLASSES.append(GenericIE)
+try:
+    from .lazy_extractors import *
+    from .lazy_extractors import _ALL_CLASSES
+except ImportError:
+    from .extractors import *
+
+    _ALL_CLASSES = [
+        klass
+        for name, klass in globals().items()
+        if name.endswith('IE') and name != 'GenericIE'
+    ]
+    _ALL_CLASSES.append(GenericIE)
 
 
 def gen_extractor_classes():