Mercurial > xib
changeset 104:60cc60f0058d
Oops, forgot to add this file in the new command system commit
Signed-off-by: Charly COSTE <changaco@changaco.net>
author | Charly COSTE <changaco@changaco.net> |
---|---|
date | Sat, 21 Nov 2009 16:54:22 +0100 |
parents | 23416c27b592 |
children | d8acff763731 |
files | argparse_modified.py |
diffstat | 1 files changed, 32 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/argparse_modified.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +from argparse import ArgumentParser as OriginalArgumentParser + +class ParseException(Exception): pass + +class ArgumentParser(OriginalArgumentParser): + + def _print_message(self, message, file=None): + if not hasattr(self, 'ret'): + self.ret = '' + self.ret += message + + def exit(self, status=0, message=''): + if hasattr(self, 'ret') and isinstance(self.ret, basestring): + raise ParseException(status, self.ret+message) + else: + raise ParseException(status, message)