mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import argparse
 | |
| import functools
 | |
| import subprocess
 | |
| 
 | |
| 
 | |
| def read_file(fname):
 | |
|     with open(fname, encoding='utf-8') as f:
 | |
|         return f.read()
 | |
| 
 | |
| 
 | |
| def write_file(fname, content, mode='w'):
 | |
|     with open(fname, mode, encoding='utf-8') as f:
 | |
|         return f.write(content)
 | |
| 
 | |
| 
 | |
| def read_version(fname='yt_dlp/version.py'):
 | |
|     """Get the version without importing the package"""
 | |
|     exec(compile(read_file(fname), fname, 'exec'))
 | |
|     return locals()['__version__']
 | |
| 
 | |
| 
 | |
| def get_filename_args(has_infile=False, default_outfile=None):
 | |
|     parser = argparse.ArgumentParser()
 | |
|     if has_infile:
 | |
|         parser.add_argument('infile', help='Input file')
 | |
|     kwargs = {'nargs': '?', 'default': default_outfile} if default_outfile else {}
 | |
|     parser.add_argument('outfile', **kwargs, help='Output file')
 | |
| 
 | |
|     opts = parser.parse_args()
 | |
|     if has_infile:
 | |
|         return opts.infile, opts.outfile
 | |
|     return opts.outfile
 | |
| 
 | |
| 
 | |
| def compose_functions(*functions):
 | |
|     return lambda x: functools.reduce(lambda y, f: f(y), functions, x)
 | |
| 
 | |
| 
 | |
| def run_process(*args, **kwargs):
 | |
|     kwargs.setdefault('text', True)
 | |
|     kwargs.setdefault('check', True)
 | |
|     kwargs.setdefault('capture_output', True)
 | |
|     if kwargs['text']:
 | |
|         kwargs.setdefault('encoding', 'utf-8')
 | |
|         kwargs.setdefault('errors', 'replace')
 | |
|     return subprocess.run(args, **kwargs)
 | 
