mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2024-09-17 08:36:37 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			48 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', varname='__version__'):
 | 
						|
    """Get the version without importing the package"""
 | 
						|
    items = {}
 | 
						|
    exec(compile(read_file(fname), fname, 'exec'), items)
 | 
						|
    return items[varname]
 | 
						|
 | 
						|
 | 
						|
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)
 |