def parse_args(args=[], doc=False):
    '\n    Handle parsing of arguments and flags. Generates docs using help from `ArgParser`\n\n    Args:\n        args (list): argv passed to the binary\n        doc (bool): If the function should generate and return manpage\n\n    Returns:\n        Processed args and a copy of the `ArgParser` object if not `doc` else a `string` containing the generated manpage\n    '
    parser = ArgParser(prog=__COMMAND__, description=f'{__COMMAND__} - {__DESCRIPTION__}')
    parser.add_argument('--version', action='store_true', help=f'output version information and exit')
    args = parser.parse_args(args)
    arg_helps_with_dups = parser._actions
    arg_helps = []
    [arg_helps.append(x) for x in arg_helps_with_dups if (x not in arg_helps)]
    NAME = f'''**NAME*/
	{__COMMAND__} - {__DESCRIPTION__}'''
    SYNOPSIS = f'''**SYNOPSIS*/
	{__COMMAND__} [OPTION]... '''
    DESCRIPTION = f'''**DESCRIPTION*/
	{__DESCRIPTION__}

'''
    for item in arg_helps:
        if (len(item.option_strings) == 0):
            if (item.nargs == '?'):
                SYNOPSIS += f'[{item.dest.upper()}] '
            else:
                SYNOPSIS += f'{item.dest.upper()} '
        elif (item.nargs == 0):
            if (len(item.option_strings) == 1):
                DESCRIPTION += f'''	**{' '.join(item.option_strings)}*/	{item.help}

'''
            else:
                DESCRIPTION += f'''	**{' '.join(item.option_strings)}*/
		{item.help}

'''
        elif (item.nargs == '+'):
            DESCRIPTION += f'''	**{' '.join(item.option_strings)}*/=[{item.dest.upper()}]...
		{item.help}

'''
        else:
            DESCRIPTION += f'''	**{' '.join(item.option_strings)}*/={item.dest.upper()}
		{item.help}

'''
    if doc:
        return f'''{NAME}

{SYNOPSIS}

{DESCRIPTION}

'''
    else:
        return (args, parser)
Handle parsing of arguments and flags. Generates docs using help from `ArgParser`

Args:
    args (list): argv passed to the binary
    doc (bool): If the function should generate and return manpage

Returns:
    Processed args and a copy of the `ArgParser` object if not `doc` else a `string` containing the generated manpage
def parse_args(args=[], doc=False):
    '\n    Handle parsing of arguments and flags. Generates docs using help from `ArgParser`\n\n    Args:\n        args (list): argv passed to the binary\n        doc (bool): If the function should generate and return manpage\n\n    Returns:\n        Processed args and a copy of the `ArgParser` object if not `doc` else a `string` containing the generated manpage\n    '
    parser = ArgParser(prog=__COMMAND__, description=f'{__COMMAND__} - {__DESCRIPTION__}')
    parser.add_argument('--version', action='store_true', help=f'output version information and exit')
    args = parser.parse_args(args)
    arg_helps_with_dups = parser._actions
    arg_helps = []
    [arg_helps.append(x) for x in arg_helps_with_dups if (x not in arg_helps)]
    NAME = f'**NAME*/
	{__COMMAND__} - {__DESCRIPTION__}'
    SYNOPSIS = f'**SYNOPSIS*/
	{__COMMAND__} [OPTION]... '
    DESCRIPTION = f'**DESCRIPTION*/
	{__DESCRIPTION__}

'
    for item in arg_helps:
        if (len(item.option_strings) == 0):
            if (item.nargs == '?'):
                SYNOPSIS += f'[{item.dest.upper()}] '
            else:
                SYNOPSIS += f'{item.dest.upper()} '
        elif (item.nargs == 0):
            if (len(item.option_strings) == 1):
                DESCRIPTION += f'	**{' '.join(item.option_strings)}*/	{item.help}

'
            else:
                DESCRIPTION += f'	**{' '.join(item.option_strings)}*/
		{item.help}

'
        elif (item.nargs == '+'):
            DESCRIPTION += f'	**{' '.join(item.option_strings)}*/=[{item.dest.upper()}]...
		{item.help}

'
        else:
            DESCRIPTION += f'	**{' '.join(item.option_strings)}*/={item.dest.upper()}
		{item.help}

'
    if doc:
        return f'{NAME}

{SYNOPSIS}

{DESCRIPTION}

'
    else:
        return (args, parser)