diff options
author | pukkandan <pukkandan.ytdlp@gmail.com> | 2022-08-09 01:08:47 +0530 |
---|---|---|
committer | pukkandan <pukkandan.ytdlp@gmail.com> | 2022-08-09 01:08:47 +0530 |
commit | 115add43876964956917bf596c1d0b148c5b3c26 (patch) | |
tree | 3274c61d8d9440b414394c34b1ac76a8cb300116 /devscripts/utils.py | |
parent | c4b6c5c7c9eb0aa448d03c1540580cdd92737aa8 (diff) | |
download | hypervideo-pre-115add43876964956917bf596c1d0b148c5b3c26.tar.lz hypervideo-pre-115add43876964956917bf596c1d0b148c5b3c26.tar.xz hypervideo-pre-115add43876964956917bf596c1d0b148c5b3c26.zip |
[devscripts] Create `utils` and refactor
Diffstat (limited to 'devscripts/utils.py')
-rw-r--r-- | devscripts/utils.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/devscripts/utils.py b/devscripts/utils.py new file mode 100644 index 000000000..aa17a5f7f --- /dev/null +++ b/devscripts/utils.py @@ -0,0 +1,35 @@ +import argparse +import functools + + +def read_file(fname): + with open(fname, encoding='utf-8') as f: + return f.read() + + +def write_file(fname, content): + with open(fname, 'w', encoding='utf-8') as f: + 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 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) |