🩹 use argparse library for parsing CLI arguments

This commit is contained in:
Rémi TAUVEL 2022-12-14 09:14:28 +01:00
parent 6b8f2232c4
commit 2a2d0dbdbb
2 changed files with 48 additions and 1 deletions

View File

@ -12,11 +12,14 @@ usage: delarte [-h|--help] - print this message
import sys
import time
from pprint import pprint
from . import api
from . import hls
from . import muxing
from . import naming
from . import www
from .cli_parser import create_parser, get_args_as_list
def fail(message, code=1):
@ -68,7 +71,9 @@ def create_progress():
def main():
"""CLI command."""
args = sys.argv[1:]
parser = create_parser()
args = get_args_as_list(parser)
if not args or args[0] == "-h" or args[0] == "--help":
print(__doc__)
return 0

42
src/delarte/cli_parser.py Normal file
View File

@ -0,0 +1,42 @@
import argparse
def create_parser() -> argparse.ArgumentParser:
"""return a parser for the script arguments
Returns:
argparse.ArgumentParser: argument parser object dedicated to get arguments from CLI call
"""
parser = argparse.ArgumentParser()
parser.add_argument(
"url",
help="url of Arte movie's webpage",
action="store",
type=str,
)
parser.add_argument(
"-l",
"--languages",
help="one of the language code proposed by Arte",
required=False,
action="store",
type=str,
nargs="?",
)
parser.add_argument(
"-r",
"--resolution",
help="directory where the output files will be stored",
required=False,
action="store",
type=str,
nargs="?",
)
return parser
def get_args_as_list(parser):
parser.parse_args()
args_namespace = parser.parse_args()
return [args_namespace.url, args_namespace.languages, args_namespace.resolution]