diff options
| author | Anthon van der Neut <anthon@mnt.org> | 2015-08-27 17:44:39 +0200 |
|---|---|---|
| committer | Anthon van der Neut <anthon@mnt.org> | 2015-08-27 17:44:39 +0200 |
| commit | 3403025e03dd626d270f8f075fb4862daeff9878 (patch) | |
| tree | 7bdad65614b4948b1ad478a76c2ca3261e652425 /action/splitappend.py | |
| parent | e8188ad86449c239b6366937fea0578c315c1d5d (diff) | |
| download | ruamel.std.argparse-3403025e03dd626d270f8f075fb4862daeff9878.tar.gz | |
- added license
- move test to _test
- move _action to action
- updated setup.py (and pkg_data in __init__.py)
- flask8 in tox.ini
Diffstat (limited to 'action/splitappend.py')
| -rw-r--r-- | action/splitappend.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/action/splitappend.py b/action/splitappend.py new file mode 100644 index 0000000..82b003b --- /dev/null +++ b/action/splitappend.py @@ -0,0 +1,29 @@ +# coding: utf-8 +# Copyright Ruamel bvba 2007-2014 + +from __future__ import print_function + +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) |
