From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Fri, 17 Jul 2020 23:43:03 +0000 (-0700) Subject: bpo-41024: doc: Explicitly mention use of 'enum.Enum' as a valid container for '... X-Git-Tag: v3.9.0b5~10 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=760552ceb8c5f5ca4f1bf13f47543b42b25e0b83;p=thirdparty%2FPython%2Fcpython.git bpo-41024: doc: Explicitly mention use of 'enum.Enum' as a valid container for '… (GH-20964) (GH-21527) --- diff --git a/Doc/library/argparse.rst b/Doc/library/argparse.rst index 5e0096cae73a..0b64dfe47f76 100644 --- a/Doc/library/argparse.rst +++ b/Doc/library/argparse.rst @@ -1133,6 +1133,20 @@ container should match the type_ specified:: Any container can be passed as the *choices* value, so :class:`list` objects, :class:`set` objects, and custom containers are all supported. +This includes :class:`enum.Enum`, which could be used to restrain +argument's choices; if we reuse previous rock/paper/scissors game example, +this could be as follows:: + + >>> from enum import Enum + >>> class GameMove(Enum): + ... ROCK = 'rock' + ... PAPER = 'paper' + ... SCISSORS = 'scissors' + ... + >>> parser = argparse.ArgumentParser(prog='game.py') + >>> parser.add_argument('move', type=GameMove, choices=GameMove) + >>> parser.parse_args(['rock']) + Namespace(move=) required