mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[lazy_extractors] Fix suitable and add flake8 test
				
					
				
			This commit is contained in:
		
							
								
								
									
										2
									
								
								.github/workflows/quick-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/quick-test.yml
									
									
									
									
										vendored
									
									
								
							| @@ -27,5 +27,7 @@ jobs: | ||||
|         python-version: 3.9 | ||||
|     - name: Install flake8 | ||||
|       run: pip install flake8 | ||||
|     - name: Make lazy extractors | ||||
|       run: python devscripts/make_lazy_extractors.py yt_dlp/extractor/lazy_extractors.py | ||||
|     - name: Run flake8 | ||||
|       run: flake8 . | ||||
|   | ||||
| @@ -8,10 +8,6 @@ import re | ||||
| class LazyLoadExtractor(object): | ||||
|     _module = None | ||||
|  | ||||
|     @classmethod | ||||
|     def ie_key(cls): | ||||
|         return cls.__name__[:-2] | ||||
|  | ||||
|     def __new__(cls, *args, **kwargs): | ||||
|         mod = __import__(cls._module, fromlist=(cls.__name__,)) | ||||
|         real_cls = getattr(mod, cls.__name__) | ||||
|   | ||||
| @@ -32,6 +32,7 @@ with open('devscripts/lazy_load_template.py', 'rt') as f: | ||||
|  | ||||
| module_contents = [ | ||||
|     module_template, | ||||
|     getsource(InfoExtractor.ie_key), | ||||
|     getsource(InfoExtractor._match_valid_url), | ||||
|     getsource(InfoExtractor.suitable), | ||||
|     '\nclass LazyLoadSearchExtractor(LazyLoadExtractor):\n    pass\n'] | ||||
| @@ -104,7 +105,7 @@ for ie in ordered_cls: | ||||
|         names.append(name) | ||||
|  | ||||
| module_contents.append( | ||||
|     '_ALL_CLASSES = [{0}]'.format(', '.join(names))) | ||||
|     '\n_ALL_CLASSES = [{0}]'.format(', '.join(names))) | ||||
|  | ||||
| module_src = '\n'.join(module_contents) + '\n' | ||||
|  | ||||
|   | ||||
| @@ -458,6 +458,8 @@ class InfoExtractor(object): | ||||
|     @classmethod | ||||
|     def suitable(cls, url): | ||||
|         """Receives a URL and returns True if suitable for this IE.""" | ||||
|         # This function must import everything it needs (except other extractors), | ||||
|         # so that lazy_extractors works correctly | ||||
|         return cls._match_valid_url(url) is not None | ||||
|  | ||||
|     @classmethod | ||||
| @@ -622,7 +624,7 @@ class InfoExtractor(object): | ||||
|     @classmethod | ||||
|     def ie_key(cls): | ||||
|         """A string for getting the InfoExtractor with get_info_extractor""" | ||||
|         return compat_str(cls.__name__[:-2]) | ||||
|         return cls.__name__[:-2] | ||||
|  | ||||
|     @property | ||||
|     def IE_NAME(self): | ||||
|   | ||||
| @@ -297,6 +297,8 @@ class RutubePlaylistIE(RutubePlaylistBaseIE): | ||||
|  | ||||
|     @classmethod | ||||
|     def suitable(cls, url): | ||||
|         from ..utils import int_or_none, parse_qs | ||||
|  | ||||
|         if not super(RutubePlaylistIE, cls).suitable(url): | ||||
|             return False | ||||
|         params = parse_qs(url) | ||||
|   | ||||
| @@ -1837,8 +1837,6 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|  | ||||
|     @classmethod | ||||
|     def suitable(cls, url): | ||||
|         # Hack for lazy extractors until more generic solution is implemented | ||||
|         # (see #28780) | ||||
|         from ..utils import parse_qs | ||||
|  | ||||
|         qs = parse_qs(url) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 pukkandan
					pukkandan