56 lines
1.3 KiB
Python
56 lines
1.3 KiB
Python
from argparse import ArgumentParser, Namespace
|
|
from typing import Tuple
|
|
|
|
|
|
def parse_arguments() -> Tuple[ArgumentParser, Namespace]:
|
|
parser = ArgumentParser(
|
|
description="Store and version large files in S3; open them like regular files. Caching included.",
|
|
)
|
|
|
|
parser.add_argument(
|
|
"-b",
|
|
"--backend",
|
|
type=str,
|
|
help="choose which backend to use, available options: `local`, `s3`, `mongodb`",
|
|
required=True,
|
|
)
|
|
|
|
parser.add_argument(
|
|
"-s",
|
|
"--secrets",
|
|
type=str,
|
|
help="path to an .ini configuration file with your S3 credentials",
|
|
required=False,
|
|
)
|
|
|
|
parser.add_argument(
|
|
"-c",
|
|
"--cache",
|
|
nargs="+",
|
|
type=str,
|
|
help="download file into local cache, example: file_name.txt:version",
|
|
required=False,
|
|
)
|
|
|
|
parser.add_argument(
|
|
"-p",
|
|
"--push",
|
|
nargs="+",
|
|
type=str,
|
|
help="push a local file into S3 and set it as the most recent version",
|
|
required=False,
|
|
)
|
|
|
|
parser.add_argument(
|
|
"-d",
|
|
"--delete",
|
|
nargs="+",
|
|
type=str,
|
|
help="delete every version of file from S3",
|
|
required=False,
|
|
)
|
|
|
|
parser.print_usage = parser.print_help # type: ignore
|
|
args = parser.parse_args()
|
|
|
|
return parser, args
|