Source code for craw.argparse_util

###########################################################################
#                                                                         #
# This file is part of Counter RNAseq Window (craw) package.              #
#                                                                         #
#    Authors: Bertrand Neron                                              #
#    Copyright (c) 2017-2019  Institut Pasteur (Paris).                   #
#    see COPYRIGHT file for details.                                      #
#                                                                         #
#    craw 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.                                  #
#                                                                         #
#    craw 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 craw (see COPYING file).                                  #
#    If not, see <http://www.gnu.org/licenses/>.                          #
#                                                                         #
###########################################################################


import argparse


[docs]class VersionAction(argparse._VersionAction): """Class to allow argparse to handel more complex version output"""
[docs] def __call__(self, parser, namespace, values, option_string=None): """Override the :meth:`argparse._VersionAction.__call__` to use a RawTextHelpFormatter only for version action whatever the class_formatter specified for the :class:`argparse.ArgumentParser` object. """ version = self.version if version is None: version = parser.version formatter = argparse.RawTextHelpFormatter(parser.prog) formatter.add_text(version) parser._print_message(formatter.format_help(), argparse._sys.stdout) parser.exit()