| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | 
							- # coding: utf-8
 
- from __future__ import unicode_literals
 
- import argparse
 
- import functools
 
- import os.path
 
- import subprocess
 
- import sys
 
- dirn = os.path.dirname
 
- sys.path.insert(0, dirn(dirn(os.path.abspath(__file__))))
 
- from youtube_dl.compat import (
 
-     compat_kwargs,
 
-     compat_open as open,
 
- )
 
- 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='youtube_dl/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 {}
 
-     kwargs['help'] = 'Output file'
 
-     parser.add_argument('outfile', **compat_kwargs(kwargs))
 
-     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')
 
-         kwargs = compat_kwargs(kwargs)
 
-     return subprocess.run(args, **kwargs)
 
 
  |