def METHOD_NAME():
    p = argparse.ArgumentParser(
        formatter_class=argparse.RawDescriptionHelpFormatter,
        description=__doc__,
        epilog=EPILOG)
    p._optionals.title = "Options and Parameters"
    p.add_argument('nb_samples',
                   type=int, nargs='+',
                   help='Number of samples on each non b0 shell. '
                        'If multishell, provide a number per shell.')
    p.add_argument('out_basename',
                   help='Gradient sampling output basename (don\'t '
                        'include extension).\n'
                        'Please add options --fsl and/or --mrtrix below.')
    p.add_argument('--eddy',
                   action='store_true',
                   help='Apply eddy optimization.\nB-vectors are flipped '
                        'to be well spread without symmetry. [%(default)s]')
    p.add_argument('--duty',
                   action='store_true',
                   help='Apply duty cycle optimization. '
                        '\nB-vectors are shuffled to reduce consecutive '
                        'colinearity in the samples. [%(default)s]')
    p.add_argument('--b0_every',
                   type=int, default=-1,
                   help='Interleave a b0 every b0_every. \nNo b0 if 0. '
                        '\nOnly 1 b0 at beginning if > number of samples '
                        'or negative. [%(default)s]')
    p.add_argument('--b0_end',
                   action='store_true',
                   help='Add a b0 as last sample. [%(default)s]')
    p.add_argument('--b0_value',
                   type=float, default=0.0,
                   help='b-value of the b0s. [%(default)s]')
    p.add_argument('--b0_philips',
                   action='store_true',
                   help='Replace values of b0s bvecs by existing bvecs for '
                        'Philips handling. [%(default)s]')
    bvals_group = p.add_mutually_exclusive_group(required=True)
    bvals_group.add_argument('--bvals',
                             type=float, nargs='+', metavar='bvals',
                             help='bval of each non-b0 shell.')
    bvals_group.add_argument('--b_lin_max',
                             type=float,
                             help='b-max for linear bval distribution '
                                  'in *b*. [replaces -bvals]')
    bvals_group.add_argument('--q_lin_max',
                             type=float,
                             help='b-max for linear bval distribution '
                                  'in *q*. [replaces -bvals]')
    g1 = p.add_argument_group(title='Save as')
    g1.add_argument('--fsl',
                    action='store_true',
                    help='Save in FSL format (.bvec/.bval). [%(default)s]')
    g1.add_argument('--mrtrix',
                    action='store_true',
                    help='Save in MRtrix format (.b). [%(default)s]')
    add_verbose_arg(p)
    add_overwrite_arg(p)
    return p