141 """Create default argument parser"""
143 parser = argparse.ArgumentParser(formatter_class=
144 lambda prog : argparse.HelpFormatter(
145 prog, max_help_position=40, width=100),
146 add_help=
False, **kwargs)
148 parser.expert_groups = []
151 g = parser.add_argument_group(
'Main options')
153 if __athenaCLI
and legacy_args:
154 g.add_argument(
'scripts', nargs=
'*', action=JobOptAction,
155 help=
'scripts or pickle file to run')
157 g.add_argument(
'-l',
'--loglevel', metavar=
'LVL', type=str.upper, default=
'INFO',
158 choices=[
'ALL',
'VERBOSE',
'DEBUG',
'INFO',
'WARNING',
'ERROR',
'FATAL'],
159 help=
'logging level: %(choices)s')
161 g.add_argument(
'--filesInput', metavar=
'FILES',
162 help=
'set FilesInput property (comma-separated list with wildcards)')
164 g.add_argument(
'--evtMax', metavar=
'N', type=int,
165 help=
'max number of events to process')
167 g.add_argument(
'--skipEvents', metavar=
'N', type=int,
168 help=
'number of events to skip')
170 g.add_argument(
'--nprocs', metavar=
'N', type=int,
171 help=
'enable AthenaMP if %(metavar)s>=1 or %(metavar)s==-1')
173 g.add_argument(
'--threads', metavar=
'N', type=int,
174 help=
'number of threads for AthenaMT, threads per worker for athenaMP')
176 g.add_argument(
'--concurrent-events', metavar=
'N', type=int,
177 help=
'number of concurrent events for AthenaMT')
179 g.add_argument(
'--CA', action=
'store_true',
180 help=
'force ComponentAccumulator mode')
182 g.add_argument(
'--config-only', metavar=
'FILE', nargs=
'?', default=
False, const=
True,
183 help=
'run only configuration and optionally store in %(metavar)s')
185 g.add_argument(
'--mtes', action=
'store_true',
186 help=
'activate multi-threaded event service')
188 g.add_argument(
'--mtes-channel', metavar=
'NAME', default=
'EventService_EventRanges',
189 help=
'yampl channel name between pilot and AthenaMT in event service mode')
191 g.add_argument(
'--version', action=
'version', version=
get_version(),
192 help=
'print version number')
194 g.add_argument(
'-h',
'--help', metavar=
'FLAGS', nargs=
'?', action=AthHelpFlags,
195 help=
'show help message (for FLAGS, "flags" for all categories)' if __athenaCLI
196 else 'show help message (for FLAGS category)')
199 g = parser.add_argument_group(
'Monitoring and debugging')
201 g.add_argument(
'--perfmon', metavar=
'MODE', nargs=
'?', const=
'fastmonmt',
202 help=
'enable performance monitoring toolkit in MODE')
204 g.add_argument(
'-i',
'--interactive', nargs=
'?', choices=[
'init',
'run'], const=
'init',
205 help=
'interactive mode with optional stage (default: init)')
207 g.add_argument(
'--profile-python', metavar=
'FILE',
208 help=
'profile python code, dump in %(metavar)s (.pkl or .txt)')
210 g.add_argument(
'-d',
'--debug', metavar=
'STAGE', nargs=
'?', const=
'init',
211 choices=[
'conf',
'init',
'exec',
'fini'],
212 help=
'attach debugger at stage: %(choices)s [%(const)s]')
214 g.add_argument(
'--debugWorker', action=
'store_true', dest=
'debug_worker',
215 help=
'pause AthenaMP workers at bootstrap until SIGUSR1 signal received')
217 g.add_argument(
'--leak-check', metavar=
'STAGE', dest=
'do_leak_chk', action=MemCheckAction,
218 choices=[
'initialize',
'start',
'beginrun',
'execute',
'finalize',
219 'endrun',
'stop',
'full',
'full-athena',
'all'],
220 help=
'perform basic memory leak checking, disables the use of tcmalloc.')
222 g.add_argument(
'--delete-check', metavar=
'STAGE', dest=
'do_leak_chk', action=MemCheckAction,
223 choices=[
'initialize',
'start',
'beginrun',
'execute',
'finalize',
224 'endrun',
'stop',
'full',
'full-athena',
'all'],
225 help=
'perform double delete checking, disables the use of tcmalloc.')
227 g.add_argument(
'--tracelevel', metavar=
'LEVEL', nargs=
'?', type=int, choices=
range(1,4), const=3,
228 help=
'trace level for python configuration (%(choices)s)')
232 g = parser.add_argument_group(
'Legacy options')
234 g.add_argument(
'-c',
'--command', metavar=
'CMD',
235 help=
'one-liner, runs before any scripts')
237 g.add_argument(
'--drop-and-reload', action=
'store_true', dest=
'drop_reload',
238 help=
'offload configuration and start new process')
240 g.add_argument(
'--dump-configuration', metavar=
'FILE', dest=
'config_dump_file',
241 help=
'dump an ASCII version of the configuration to %(metavar)s')
243 g.add_argument(
'-s',
'--showincludes', action=
'store_true',
244 help=
'show printout of included files')
248 g = parser.add_argument_group(
'System options')
250 g.add_argument(
'--tcmalloc', action=
'store_true', dest=
'tcmalloc', default=
True,
251 help=
'use tcmalloc.so for memory allocation [DEFAULT]')
253 g.add_argument(
'--stdcmalloc', action=
'store_false', dest=
'tcmalloc',
254 help=
'use libc malloc for memory allocation')
256 g.add_argument(
'--stdcmath', action=
'store_true', default=
True,
257 help=
'use libc malloc for memory allocation [DEFAULT]')
259 g.add_argument(
'--imf', action=
'store_true',
260 help=
'use Intel Math Function library')
262 g.add_argument(
'--exctrace', action=
'store_true',
263 help=
'preload exception trace collector')
265 g.add_argument(
'--no-excabort', action=
'store_true',
266 help=
'disable converting some exceptions to abort')
268 g.add_argument(
'--preloadlib', metavar=
'LIB',
269 help=
'localized preload of library %(metavar)s')
271 g.add_argument(
'--enable-ers-hdlr', metavar=
'y/n', default=
'n', choices=[
'y',
'n'],
272 help=
'enable or not the ERS handler [%(default)s]')