]> jfr.im git - yt-dlp.git/blobdiff - devscripts/utils.py
[misc] Cleanup (#9765)
[yt-dlp.git] / devscripts / utils.py
index b91b8e65a8f837e0866fdf18f16d725a7fd17abd..a952c9fae2aed10cc59d9483615b6c39652d3799 100644 (file)
@@ -1,5 +1,6 @@
 import argparse
 import functools
+import subprocess
 
 
 def read_file(fname):
@@ -12,10 +13,11 @@ def write_file(fname, content, mode='w'):
         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):
@@ -33,3 +35,13 @@ 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)