diff options
| author | Anthon van der Neut <anthon@mnt.org> | 2014-01-28 12:21:00 +0100 |
|---|---|---|
| committer | Anthon van der Neut <anthon@mnt.org> | 2014-01-28 12:21:00 +0100 |
| commit | 30dbd5babf56398c16efd82f513935d98e36a81d (patch) | |
| tree | 58df32860f56c2bd551c1592eac8a6754f0e953e /_action/splitappend.py | |
| download | ruamel.std.argparse-30dbd5babf56398c16efd82f513935d98e36a81d.tar.gz | |
initial version
Diffstat (limited to '_action/splitappend.py')
| -rw-r--r-- | _action/splitappend.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/_action/splitappend.py b/_action/splitappend.py new file mode 100644 index 0000000..77008e2 --- /dev/null +++ b/_action/splitappend.py @@ -0,0 +1,26 @@ +# coding: utf-8 + +import argparse + + +class SplitAppendAction(argparse._AppendAction): + """append to list, like normal "append", but split first + (default split on ',') + + parser = argparse.ArgumentParser() + parser.add_argument('-d', action=SplitAppendAction) + + the following argument have the same list as result: + -d ab -d cd -d kl -d mn + -d ab,cd,kl,mn + -d ab,cd -d kl,mn + """ + def __init__(self, *args, **kw): + self._split_chr = ',' + argparse.Action.__init__(self, *args, **kw) + + def __call__(self, parser, namespace, values, option_string=None): + # _AppendAction does not return a value + for value in values.split(self._split_chr): + argparse._AppendAction.__call__( + self, parser, namespace, value, option_string) |
