Skip to content

Instantly share code, notes, and snippets.

@yuijim
Last active November 1, 2021 09:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yuijim/1b31748924f0e9136cf08c422377bc4b to your computer and use it in GitHub Desktop.
Save yuijim/1b31748924f0e9136cf08c422377bc4b to your computer and use it in GitHub Desktop.
Argparse + Enum + multiple choice
from enum import Enum
import argparse
class Renderers(Enum):
source_videos = 0 # values can be anything you need, e.g. specific Renderer classes / objects
input_points = 1
projection_points = 2
parser = argparse.ArgumentParser()
parser.add_argument(
"--renderers",
dest="renderers",
help="Set renderers to use for video output. Choices: {}. Default: ['input_points', 'projection_points']".format(
set(Renderers.__members__.keys())),
metavar="RENDERER",
default=[Renderers.input_points,
Renderers.projection_points],
choices=list(Renderers),
nargs="+",
action="extend",
type=Renderers.__getitem__
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment