def METHOD_NAME():
    import optparse
    op = optparse.OptionParser()
    op.set_usage('%prog [options] [subset-wanted]...')
    op.add_option("--int", action="store_true", dest='use_int',
                  default=False, help="Use integer arithmetic")
    op.add_option("--float", action="store_true", dest='use_float',
                  default=False, help="Use floating-point arithmetic")
    op.add_option("--big", action="store_true",
                  default=False, help="Dataset is big, do not store in memory")
    op.add_option("-f", "--field", action="store", type='int',
                  default=1, help="Select field (first field is 1)")
    op.add_option("-d", "--delimiter", action="store", type='string',
                  default=None, help="Set field delimiter")
    op.add_option("-c", action="store_false", dest='pass_comments',
                  default=True, help="Don't forward comments to output")
    opts, args = op.parse_args()
    assert opts.field >= 1
    import sys
    dataset = data_generator(sys.stdin, opts.delimiter, opts.field - 1,
                             pass_comments=opts.pass_comments)
    if opts.use_float:
        val_t = float
    elif opts.use_int:
        # Python 2 backwards compatibility
        val_t = int if sys.version_info > (3,0) else long
    elif opts.big:
        sys.stderr.write("ERROR: Must specify --int or --float with --big\n")
        sys.exit(1)
    else:
        # Work out whether we need floating pt or not.
        dataset = list(dataset)
        if any(d for d in dataset if '.' in d):
            val_t = float
        else:
            # Python 2 backwards compatibility
            val_t = int if sys.version_info > (3,0) else long
    processors = []
    if not args:
        if opts.big:
            processors = [get_stats_1pass]
        else:
            processors = [get_stats, get_mode]
    will_store_dataset = False
    for a in args:
        if a in get_stats_1pass_outputs:
            p = get_stats_1pass
        elif a in get_stats_outputs:
            p = get_stats
            will_store_dataset = True
        elif a == 'mode':
            p = get_mode
            will_store_dataset = True
        else:
            sys.stderr.write("ERROR: Unknown field '%s'\n" % a)
            sys.exit(1)
        if p not in processors:
            processors.append(p)
    if get_stats_1pass in processors and get_stats in processors:
        processors.remove(get_stats_1pass)
    if opts.big and will_store_dataset:
        m =  "ERROR: Selected field(s) incompatible with --big because they\n"
        m += "       require more than one pass over the dataset.\n"
        sys.stderr.write(m)
        sys.exit(1)
    if len(processors) > 1:
        dataset = list(dataset)
    s = B()
    for p in processors:
        p(s, dataset, val_t)
    if args:
        keys = args
    else:
        keys = sorted(s.__dict__.keys())
    if not args:
        for k in keys:
            print(k, getattr(s, k))
    else:
        for k in keys:
            print(getattr(s, k), end=' ')
        print()