mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	[devscripts] Improve hack to convert command-line options to API options
* define equality for DateRange * don't show default DateRange
This commit is contained in:
		| @@ -49,15 +49,34 @@ def cli_to_api(*opts): | ||||
|  | ||||
|     # from https://github.com/yt-dlp/yt-dlp/issues/5859#issuecomment-1363938900 | ||||
|     default = parsed_options([]) | ||||
|     diff = dict((k, v) for k, v in parsed_options(opts).items() if default[k] != v) | ||||
|  | ||||
|     def neq_opt(a, b): | ||||
|         if a == b: | ||||
|             return False | ||||
|         if a is None and repr(type(object)).endswith(".utils.DateRange'>"): | ||||
|             return '0001-01-01 - 9999-12-31' != '{0}'.format(b) | ||||
|         return a != b | ||||
|  | ||||
|     diff = dict((k, v) for k, v in parsed_options(opts).items() if neq_opt(default[k], v)) | ||||
|     if 'postprocessors' in diff: | ||||
|         diff['postprocessors'] = [pp for pp in diff['postprocessors'] if pp not in default['postprocessors']] | ||||
|     return diff | ||||
|  | ||||
|  | ||||
| def main(): | ||||
|     from pprint import pprint | ||||
|     pprint(cli_to_api(*sys.argv)) | ||||
|     from pprint import PrettyPrinter | ||||
|  | ||||
|     pprint = PrettyPrinter() | ||||
|     super_format = pprint.format | ||||
|  | ||||
|     def format(object, context, maxlevels, level): | ||||
|         if repr(type(object)).endswith(".utils.DateRange'>"): | ||||
|             return '{0}: {1}>'.format(repr(object)[:-2], object), True, False | ||||
|         return super_format(object, context, maxlevels, level) | ||||
|  | ||||
|     pprint.format = format | ||||
|  | ||||
|     pprint.pprint(cli_to_api(*sys.argv)) | ||||
|  | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|   | ||||
| @@ -3190,6 +3190,10 @@ class DateRange(object): | ||||
|     def __str__(self): | ||||
|         return '%s - %s' % (self.start.isoformat(), self.end.isoformat()) | ||||
|  | ||||
|     def __eq__(self, other): | ||||
|         return (isinstance(other, DateRange) | ||||
|                 and self.start == other.start and self.end == other.end) | ||||
|  | ||||
|  | ||||
| def platform_name(): | ||||
|     """ Returns the platform name as a compat_str """ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user