mirror of https://github.com/ytdl-org/youtube-dl
parent
2b7dd3b2a2
commit
aac33155e4
@ -0,0 +1 @@ |
||||
# Empty file needed to make devscripts.utils properly importable from outside |
@ -0,0 +1,62 @@ |
||||
# 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) |
Loading…
Reference in new issue