def argument_parser(args):
parser = argparse.ArgumentParser(<EOL>prog="<STR_LIT>",<EOL>description="<STR_LIT>",<EOL>formatter_class=argparse.RawDescriptionHelpFormatter,<EOL>add_help=False,<EOL>)<EOL>parser.add_argument(<EOL>"<STR_LIT>", "<STR_LIT>",<EOL>dest="<STR_LIT>",<EOL>action="<STR_LIT:store_true>",<EOL>default=False,<EOL>)<EOL>parser.add_argument(<EOL>"<STR_LIT>",<EOL>dest="<STR_LIT>",<EOL>action="<STR_LIT:store_true>",<EOL>default=False,<EOL>)<EOL>parser.add_argument(<EOL>"<STR_LIT>",<EOL>"<STR_LIT>",<EOL>dest="<STR_LIT>",<EOL>action="<STR_LIT:store_true>",<EOL>default=False,<EOL>)<EOL>parser.add_argument(<EOL>"<STR_LIT>",<EOL>"<STR_LIT>",<EOL>dest="<STR_LIT>",<EOL>metavar="<STR_LIT>",<EOL>default="<STR_LIT>",<EOL>nargs=<NUM_LIT:1>,<EOL>type=str,<EOL>)<EOL>parser.add_argument(<EOL>"<STR_LIT>",<EOL>"<STR_LIT>",<EOL>dest="<STR_LIT>",<EOL>metavar="<STR_LIT>",<EOL>default="<STR_LIT>",<EOL>nargs=<NUM_LIT:1>,<EOL>type=str,<EOL>)<EOL>parser.add_argument(<EOL>"<STR_LIT>",<EOL>"<STR_LIT>",<EOL>action="<STR_LIT:version>",<EOL>version="<STR_LIT>".format(<EOL>nagaram.__version__,<EOL>nagaram.__release_date__,<EOL>)<EOL>)<EOL>parser.add_argument(<EOL>dest="<STR_LIT>",<EOL>metavar="<STR_LIT>",<EOL>nargs=argparse.REMAINDER,<EOL>)<EOL>settings = parser.parse_args(args)<EOL>if settings.help:<EOL><INDENT>raise SystemExit(nagaram.__doc__.strip())<EOL><DEDENT>if not settings.wordlist:<EOL><INDENT>raise SystemExit(parser.print_usage())<EOL><DEDENT>if settings.starts_with:<EOL><INDENT>settings.starts_with = settings.starts_with[<NUM_LIT:0>]<EOL><DEDENT>if settings.ends_with:<EOL><INDENT>settings.ends_with = settings.ends_with[<NUM_LIT:0>]<EOL><DEDENT>return (settings.wordlist, settings.sowpods, settings.length,<EOL>settings.starts_with, settings.ends_with)<EOL>
Argparse logic, command line options.

    Args:
        args: sys.argv[1:], everything passed to the program after its name

    Returns:
        A tuple of:
            a list of words/letters to search
            a boolean to declare if we want to use the sowpods words file
            a boolean to declare if we want to output anagrams by length
            a string of starting characters to find anagrams based on
            a string of ending characters to find anagrams based on

    Raises:
        SystemExit if the user passes invalid arguments, --version or --help