123456789101112131415161718192021222324252627282930313233343536 |
- import argparse
- import functools
- 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)
- # Get the version without importing the package
- def read_version(fname='hypervideo_dl/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)
|