code: def add_pypiper_args(parser, groups=("pypiper", ), args=None,
                       required=None, all_args=False):
      
      args_to_add = _determine_args(
          argument_groups=groups, arguments=args, use_all_args=all_args)
      parser = _add_args(parser, args_to_add, required)
      return parser
docs: Use this to add standardized pypiper arguments to your python pipeline.
  
      There are two ways to use `add_pypiper_args`: by specifying argument groups,
      or by specifying individual arguments. Specifying argument groups will add
      multiple arguments to your parser; these convenient argument groupings
      make it easy to add arguments to certain types of pipeline. For example,
      to make a looper-compatible pipeline, use `groups = ["pypiper", "looper"]`.
  
      :param argparse.ArgumentParser parser: ArgumentParser object from a pipeline
      :param str | Iterable[str] groups: Adds arguments belong to specified group
          of args. Options: pypiper, config, looper, resources, common, ngs, all.
      :param str | Iterable[str] args: You may specify a list of specific arguments one by one.
      :param Iterable[str] required: Arguments to be flagged as 'required' by argparse.
      :param bool all_args: Whether to include all of pypiper's arguments defined here.
      :return argparse.ArgumentParser: A new ArgumentParser object, with selected
          pypiper arguments added