import argparse
import functools
+import subprocess
def read_file(fname):
return f.write(content)
-# Get the version without importing the package
-def read_version(fname='yt_dlp/version.py'):
- exec(compile(read_file(fname), fname, 'exec'))
- return locals()['__version__']
+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):
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)