Metadata-Version: 2.1
Name: argvparser
Version: 1.0.0
Summary: This module allows to format an argument vector in a structure easier to read and use for command line applications
Home-page: https://github.com/Arthuchaut/ArgvParser
Author: Arthuchaut
License: MIT
Description: # ArgvParser
        
        ArgvParser allows to format an argument vector in a structure easier to read and use for command line applications.
        
        ### Installation
        
            python -m pip install argvparser
            
        ### Importation
        
            import argvparser
        
        ## Using
        
            import argvparser
            import sys
        
            args = argvparser.argvparser.parse(sys.argv)
            
        ### Documentation
        
        **ArgvParser.parse**
        
        Formate arguments vector to a dictionnary
        
        :param argv: The arguments vector
        :type argv: list
        
        :return: The formated arguments
        :rtype: dict
        
        :raise Exception: Argument assigned to any option
        
        :Example:
        
        *Parsing with several concatenated options*
        
            >>> argvparser.argvparser.parse(['app.py', 'ls', '-lar', '42', '--float', '3.14'])
            {
                'app': 'app',
                'command': 'ls',
                'options': {
                    '-l': None,
                    '-a': None,
                    '-r': 42,
                    '--float': 3.14
                }
            }
        
        *Parsing without command specified*
        
            >>> argvparser.argvparser.parse(['app.py', '--print', 'My message I want to print', '-i'])
            {
                'app': 'app',
                'command': None,
                'options': {
                    '--print': 'My message I want to print',
                    '-i': None
                }
            }
            
        *Parsing with duplicated options*
            
            >>> argvparser.argvparser.parse(['app.py', '-v', '/var/www', '-i', '-v', '/var/bin/bash'])
            {
                'app': 'app',
                'command': None,
                'options': {
                    '-v': [
                        '/var/www',
                        '/var/bin/bash'
                    ],
                    '-i': None
                }
            }
        
        **ArgvParser.parse_multi_options**
        
        Retrieves multiple argument (like -li) and reconstruct it to a correct format
        
        :param argv: The arguments vector
        :type argv: list
        
        :return: Correctly formated arguments vector
        :rtype: list
        
        :Example:
        
            >>> argvparser.argvparser.parse_multi_options(['app.py', '-liar', '--test'])
            ['app.py', '-l', '-i', '-a', '-r', '--test']
        
        **ArgvParser.is_option**
        
        Check if the argument in parameter is an option or not
        
        :param arg: The argument to control
        :type arg: str
        
        :return: True if arg is an option, else false
        :rtype: bool
        
        :Example:
        
            >>> argvparser.argvparser.is_option('-t')
            True
        
            >>> argvparser.argvparser.is_option('--test')
            True
        
            >>> argvparser.argvparser.is_option('test')
            False
        
        **ArgvParser.parse_type**
        
        Convert the passed argument into the appropriate type
        
        :param arg: The argument to convert
        :type arg: str, None
        
        :return: The converted argument
        :rtype: int, float, str, None
        
        :note: The default type returned is a str
        
        :Example:
        
            >>> argvparser.argvparser.parse_type('test')
            'test'
        
            >>> argvparser.argvparser.parse_type('42')
            42
        
            >>> argvparser.argvparser.parse_type('3.14')
            3.14
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
