def configure_global_options(config_parser: configargparse.ArgParser) -> None: config_parser.add_argument( "-d", "--debug", required=False, default=False, action="store_true", help="Enable debug messages.", ) config_parser.add_argument("--version", action="version", version=f"{app_name} {get_version()}") config_parser.add_argument( "-b", "--build-engine", required=False, default="helm3", type=BuildEngineType, help="Select the build engine used for building your chart.", ) steps_group = config_parser.add_mutually_exclusive_group() steps_group.add_argument( "--steps", nargs="+", help=f"List of steps to execute. Available steps: {ALL_STEPS}", required=False, default=["all"], ) steps_group.add_argument( "--skip-steps", nargs="+", help=f"List of steps to skip. Available steps: {ALL_STEPS}", required=False, default=[], )
def add_param_arguments(ap=None, arg_default=None): # arguments with possible format-specific parameter values def add_argument(a, *args, **kwargs): return a.add_argument(*args, **kwargs) def add(a, *args, default=None, func=add_argument, **kwargs): arg = func(a, *args, default=default if arg_default is None else arg_default, **kwargs) try: RESTORED_ARGS.add(arg.dest) except AttributeError: RESTORED_ARGS.update(get_group_arg_names(arg)) def add_boolean(a, *args, **kwargs): add(a, *args, func=add_boolean_option, **kwargs) if not ap: ap = ArgParser() group = ap.add_argument_group(title="Node labels") add(group, "--max-node-labels", type=int, default=0, help="max number of node labels to allow") add(group, "--max-node-categories", type=int, default=0, help="max node categories to allow") add(group, "--min-node-label-count", type=int, default=2, help="min number of occurrences for a label") add_boolean(group, "use-gold-node-labels", "gold node labels when parsing") add_boolean(group, "wikification", "use Spotlight to wikify any named node") add_boolean(group, "node-labels", "prediction of node labels, if supported by format", default=True) group = ap.add_argument_group(title="Structural constraints") add_boolean(group, "linkage", "linkage nodes and edges") add_boolean(group, "implicit", "implicit nodes and edges") add_boolean(group, "remote", "remote edges", default=True) add_boolean(group, "constraints", "scheme-specific rules", default=True) add_boolean(group, "require-connected", "constraint that output graph must be connected") add(group, "--orphan-label", default="orphan", help="edge label to use for nodes without parents") add(group, "--max-action-ratio", type=float, default=100, help="max action/terminal ratio") add(group, "--max-node-ratio", type=float, default=10, help="max node/terminal ratio") add(group, "--max-height", type=int, default=20, help="max graph height") group = ap.add_mutually_exclusive_group() add(group, "--swap", choices=(REGULAR, COMPOUND), default=REGULAR, help="swap transitions") add(group, "--no-swap", action="store_false", dest="swap", help="exclude swap transitions") add(ap, "--max-swap", type=int, default=15, help="if compound swap enabled, maximum swap size") group = ap.add_argument_group(title="General classifier training parameters") add(group, "--learning-rate", type=float, help="rate for model weight updates (default: by trainer/1)") add(group, "--learning-rate-decay", type=float, default=0, help="learning rate decay per iteration") add(group, "--swap-importance", type=float, default=1, help="learning rate factor for Swap") add(group, "--max-training-per-format", type=int, help="max number of training passages per format per iteration") add_boolean(group, "missing-node-features", "allow node features to be missing if not available", default=True) add(group, "--omit-features", help="string of feature properties to omit, out of " + FEATURE_PROPERTIES) add_boolean(group, "curriculum", "sort training passages by action prediction accuracy in previous epoch") group = ap.add_argument_group(title="Perceptron parameters") add(group, "--min-update", type=int, default=5, help="minimum #updates for using a feature") SPARSE_ARG_NAMES.update(get_group_arg_names(group)) group = ap.add_argument_group(title="Neural network parameters") add(group, "--word-dim-external", type=int, default=300, help="dimension for external word embeddings") add(group, "--word-vectors", help="file to load external word embeddings from (default: GloVe)") add(group, "--vocab", help="file mapping integer ID to word form (to avoid loading spaCy), or '-' to use word form") add_boolean(group, "update-word-vectors", "external word vectors in training parameters", default=True) add(group, "--word-dim", type=int, default=0, help="dimension for learned word embeddings") add(group, "--lemma-dim", type=int, default=200, help="dimension for lemma embeddings") add(group, "--tag-dim", type=int, default=20, help="dimension for fine POS tag embeddings") add(group, "--pos-dim", type=int, default=20, help="dimension for coarse/universal POS tag embeddings") add(group, "--dep-dim", type=int, default=10, help="dimension for dependency relation embeddings") add(group, "--edge-label-dim", type=int, default=20, help="dimension for edge label embeddings") add(group, "--node-label-dim", type=int, default=0, help="dimension for node label embeddings") add(group, "--node-category-dim", type=int, default=0, help="dimension for node category embeddings") add(group, "--punct-dim", type=int, default=1, help="dimension for separator punctuation embeddings") add(group, "--action-dim", type=int, default=3, help="dimension for input action type embeddings") add(group, "--ner-dim", type=int, default=3, help="dimension for input entity type embeddings") add(group, "--shape-dim", type=int, default=3, help="dimension for word shape embeddings") add(group, "--prefix-dim", type=int, default=2, help="dimension for word prefix embeddings") add(group, "--suffix-dim", type=int, default=3, help="dimension for word suffix embeddings") add(group, "--output-dim", type=int, default=50, help="dimension for output action embeddings") add(group, "--layer-dim", type=int, default=50, help="dimension for hidden layers") add(group, "--layers", type=int, default=2, help="number of hidden layers") add(group, "--lstm-layer-dim", type=int, default=500, help="dimension for LSTM hidden layers") add(group, "--lstm-layers", type=int, default=0, help="number of LSTM hidden layers") add(group, "--embedding-layer-dim", type=int, default=500, help="dimension for layers before LSTM") add(group, "--embedding-layers", type=int, default=1, help="number of layers before LSTM") add(group, "--activation", choices=ACTIVATIONS, default=DEFAULT_ACTIVATION, help="activation function") add(group, "--init", choices=INITIALIZERS, default=DEFAULT_INITIALIZER, help="weight initialization") add(group, "--minibatch-size", type=int, default=200, help="mini-batch size for optimization") add(group, "--optimizer", choices=TRAINERS, default=DEFAULT_TRAINER, help="algorithm for optimization") add(group, "--loss", choices=LOSSES, default=DEFAULT_LOSS, help="loss function for training") add(group, "--max-words-external", type=int, default=250000, help="max external word vectors to use") add(group, "--max-words", type=int, default=10000, help="max number of words to keep embeddings for") add(group, "--max-lemmas", type=int, default=3000, help="max number of lemmas to keep embeddings for") add(group, "--max-tags", type=int, default=100, help="max number of fine POS tags to keep embeddings for") add(group, "--max-pos", type=int, default=100, help="max number of coarse POS tags to keep embeddings for") add(group, "--max-deps", type=int, default=100, help="max number of dep labels to keep embeddings for") add(group, "--max-edge-labels", type=int, default=15, help="max number of edge labels for embeddings") add(group, "--max-puncts", type=int, default=5, help="max number of punctuations for embeddings") add(group, "--max-action-types", type=int, default=10, help="max number of action types for embeddings") add(group, "--max-action-labels", type=int, default=100, help="max number of action labels to allow") add(group, "--max-ner-types", type=int, default=18, help="max number of entity types to allow") add(group, "--max-shapes", type=int, default=30, help="max number of word shapes to allow") add(group, "--max-prefixes", type=int, default=30, help="max number of 1-character word prefixes to allow") add(group, "--max-suffixes", type=int, default=500, help="max number of 3-character word suffixes to allow") add(group, "--word-dropout", type=float, default=0.2, help="word dropout parameter") add(group, "--word-dropout-external", type=float, default=0, help="word dropout for word vectors") add(group, "--lemma-dropout", type=float, default=0.2, help="lemma dropout parameter") add(group, "--tag-dropout", type=float, default=0.2, help="fine POS tag dropout parameter") add(group, "--pos-dropout", type=float, default=0.2, help="coarse POS tag dropout parameter") add(group, "--dep-dropout", type=float, default=0.5, help="dependency label dropout parameter") add(group, "--node-label-dropout", type=float, default=0.2, help="node label dropout parameter") add(group, "--node-dropout", type=float, default=0.1, help="probability to drop features for a whole node") add(group, "--dropout", type=float, default=0.4, help="dropout parameter between layers") add(group, "--max-length", type=int, default=120, help="maximum length of input sentence") add(group, "--rnn", choices=["None"] + list(RNNS), default=DEFAULT_RNN, help="type of recurrent neural network") add(group, "--gated", type=int, nargs="?", default=2, help="gated input to BiRNN and MLP") NN_ARG_NAMES.update(get_group_arg_names(group)) return ap
def add_param_arguments( ap=None, arg_default=None ): # arguments with possible format-specific parameter values def add_argument(a, *args, **kwargs): return a.add_argument(*args, **kwargs) def add(a, *args, default=None, func=add_argument, **kwargs): arg = func(a, *args, default=default if arg_default is None else arg_default, **kwargs) try: RESTORED_ARGS.add(arg.dest) except AttributeError: RESTORED_ARGS.update(get_group_arg_names(arg)) def add_boolean(a, *args, **kwargs): add(a, *args, func=add_boolean_option, **kwargs) if not ap: ap = ArgParser() group = ap.add_argument_group(title="Node labels") add(group, "--max-node-labels", type=int, default=0, help="max number of node labels to allow") add(group, "--max-node-categories", type=int, default=0, help="max node categories to allow") add(group, "--min-node-label-count", type=int, default=2, help="min number of occurrences for a label") add_boolean(group, "use-gold-node-labels", "gold node labels when parsing") add_boolean(group, "wikification", "use Spotlight to wikify any named node") add_boolean(group, "node-labels", "prediction of node labels, if supported by format", default=True) group = ap.add_argument_group(title="Structural constraints") add_boolean(group, "linkage", "linkage nodes and edges") add_boolean(group, "implicit", "implicit nodes and edges") add_boolean(group, "remote", "remote edges", default=True) add_boolean(group, "constraints", "scheme-specific rules", default=True) add_boolean(group, "require-connected", "constraint that output graph must be connected") add(group, "--orphan-label", default="orphan", help="edge label to use for nodes without parents") add(group, "--max-action-ratio", type=float, default=100, help="max action/terminal ratio") add(group, "--max-node-ratio", type=float, default=10, help="max node/terminal ratio") add(group, "--max-height", type=int, default=20, help="max graph height") group = ap.add_mutually_exclusive_group() add(group, "--swap", choices=(REGULAR, COMPOUND), default=REGULAR, help="swap transitions") add(group, "--no-swap", action="store_false", dest="swap", help="exclude swap transitions") add(ap, "--max-swap", type=int, default=15, help="if compound swap enabled, maximum swap size") group = ap.add_argument_group( title="General classifier training parameters") add(group, "--learning-rate", type=float, help="rate for model weight updates (default: by trainer/1)") add(group, "--learning-rate-decay", type=float, default=0, help="learning rate decay per iteration") add(group, "--swap-importance", type=float, default=1, help="learning rate factor for Swap") add(group, "--max-training-per-format", type=int, help="max number of training passages per format per iteration") add_boolean(group, "missing-node-features", "allow node features to be missing if not available", default=True) add(group, "--omit-features", help="string of feature properties to omit, out of " + FEATURE_PROPERTIES) add_boolean( group, "curriculum", "sort training passages by action prediction accuracy in previous epoch" ) group = ap.add_argument_group(title="Perceptron parameters") add(group, "--min-update", type=int, default=5, help="minimum #updates for using a feature") SPARSE_ARG_NAMES.update(get_group_arg_names(group)) group = ap.add_argument_group(title="Neural network parameters") add(group, "--word-dim-external", type=int, default=300, help="dimension for external word embeddings") add(group, "--word-vectors", help="file to load external word embeddings from (default: GloVe)") add(group, "--vocab", help= "file mapping integer ID to word form (to avoid loading spaCy), or '-' to use word form" ) add_boolean(group, "update-word-vectors", "external word vectors in training parameters", default=True) add(group, "--word-dim", type=int, default=0, help="dimension for learned word embeddings") add(group, "--lemma-dim", type=int, default=200, help="dimension for lemma embeddings") add(group, "--tag-dim", type=int, default=20, help="dimension for fine POS tag embeddings") add(group, "--pos-dim", type=int, default=20, help="dimension for coarse/universal POS tag embeddings") add(group, "--dep-dim", type=int, default=10, help="dimension for dependency relation embeddings") add(group, "--edge-label-dim", type=int, default=20, help="dimension for edge label embeddings") add(group, "--node-label-dim", type=int, default=0, help="dimension for node label embeddings") add(group, "--node-category-dim", type=int, default=0, help="dimension for node category embeddings") add(group, "--punct-dim", type=int, default=1, help="dimension for separator punctuation embeddings") add(group, "--action-dim", type=int, default=3, help="dimension for input action type embeddings") add(group, "--ner-dim", type=int, default=3, help="dimension for input entity type embeddings") add(group, "--shape-dim", type=int, default=3, help="dimension for word shape embeddings") add(group, "--prefix-dim", type=int, default=2, help="dimension for word prefix embeddings") add(group, "--suffix-dim", type=int, default=3, help="dimension for word suffix embeddings") add(group, "--output-dim", type=int, default=50, help="dimension for output action embeddings") add(group, "--layer-dim", type=int, default=50, help="dimension for hidden layers") add(group, "--layers", type=int, default=2, help="number of hidden layers") add(group, "--lstm-layer-dim", type=int, default=500, help="dimension for LSTM hidden layers") add(group, "--lstm-layers", type=int, default=0, help="number of LSTM hidden layers") add(group, "--embedding-layer-dim", type=int, default=500, help="dimension for layers before LSTM") add(group, "--embedding-layers", type=int, default=1, help="number of layers before LSTM") add(group, "--activation", choices=ACTIVATIONS, default=DEFAULT_ACTIVATION, help="activation function") add(group, "--init", choices=INITIALIZERS, default=DEFAULT_INITIALIZER, help="weight initialization") add(group, "--minibatch-size", type=int, default=200, help="mini-batch size for optimization") add(group, "--optimizer", choices=TRAINERS, default=DEFAULT_TRAINER, help="algorithm for optimization") add(group, "--loss", choices=LOSSES, default=DEFAULT_LOSS, help="loss function for training") add(group, "--max-words-external", type=int, default=250000, help="max external word vectors to use") add(group, "--max-words", type=int, default=10000, help="max number of words to keep embeddings for") add(group, "--max-lemmas", type=int, default=3000, help="max number of lemmas to keep embeddings for") add(group, "--max-tags", type=int, default=100, help="max number of fine POS tags to keep embeddings for") add(group, "--max-pos", type=int, default=100, help="max number of coarse POS tags to keep embeddings for") add(group, "--max-deps", type=int, default=100, help="max number of dep labels to keep embeddings for") add(group, "--max-edge-labels", type=int, default=15, help="max number of edge labels for embeddings") add(group, "--max-puncts", type=int, default=5, help="max number of punctuations for embeddings") add(group, "--max-action-types", type=int, default=10, help="max number of action types for embeddings") add(group, "--max-action-labels", type=int, default=100, help="max number of action labels to allow") add(group, "--max-ner-types", type=int, default=18, help="max number of entity types to allow") add(group, "--max-shapes", type=int, default=30, help="max number of word shapes to allow") add(group, "--max-prefixes", type=int, default=30, help="max number of 1-character word prefixes to allow") add(group, "--max-suffixes", type=int, default=500, help="max number of 3-character word suffixes to allow") add(group, "--word-dropout", type=float, default=0.2, help="word dropout parameter") add(group, "--word-dropout-external", type=float, default=0, help="word dropout for word vectors") add(group, "--lemma-dropout", type=float, default=0.2, help="lemma dropout parameter") add(group, "--tag-dropout", type=float, default=0.2, help="fine POS tag dropout parameter") add(group, "--pos-dropout", type=float, default=0.2, help="coarse POS tag dropout parameter") add(group, "--dep-dropout", type=float, default=0.5, help="dependency label dropout parameter") add(group, "--node-label-dropout", type=float, default=0.2, help="node label dropout parameter") add(group, "--node-dropout", type=float, default=0.1, help="probability to drop features for a whole node") add(group, "--dropout", type=float, default=0.4, help="dropout parameter between layers") add(group, "--max-length", type=int, default=120, help="maximum length of input sentence") add(group, "--rnn", choices=["None"] + list(RNNS), default=DEFAULT_RNN, help="type of recurrent neural network") add(group, "--gated", type=int, nargs="?", default=2, help="gated input to BiRNN and MLP") NN_ARG_NAMES.update(get_group_arg_names(group)) return ap
def _create_parser(): parser = ArgParser(prog='releaser', default_config_files=['.releaser'], auto_env_var_prefix='releaser_') parser.add_argument('--config', is_config_file=True) parser.add_argument('--repository', dest='repo', type=Repo, default=Repo(Path.cwd())) parser.add_argument('--preprod-url', dest='preprod_url', default=None) parser.add_argument('--release-branch', default='master') parser.add_argument('--app-name') parser.add_argument('--release-date', default='today') parser.add_argument('--issue-tracker-url') next_version_group = parser.add_mutually_exclusive_group() next_version_group.add_argument('--build', action='store_const', const='BUILD', env_var='RELEASER_NEXT_VERSION', dest='next_version') next_version_group.add_argument('--patch', action='store_const', const='PATCH', env_var='RELEASER_NEXT_VERSION', dest='next_version') next_version_group.add_argument('--minor', action='store_const', const='MINOR', env_var='RELEASER_NEXT_VERSION', dest='next_version') next_version_group.add_argument('--major', action='store_const', const='MAJOR', env_var='RELEASER_NEXT_VERSION', dest='next_version') next_version_group.set_defaults(next_version='MINOR') subparsers = parser.add_subparsers(dest='command') versions_subparser = subparsers.add_parser('versions') subparsers.add_parser('changes') subparsers.add_parser('draft') subparsers.add_parser('tag') parser.add_argument('--template-mail', type=Path, dest='template_mail_path', default=ROOT / 'releaser/templates/mail.md.j2') parser.add_argument('--template-tag', type=Path, dest='template_tag_path', default=ROOT / 'releaser/templates/tag.md.j2') parser.add_argument('--template-changes', type=Path, dest='template_changes_path', default=ROOT / 'releaser/templates/changes.md.j2') parser.add_argument('--start', default='today @ 21:45') parser.add_argument('--end', default='today @ 22:15') parser.set_defaults(command='changes') versions_subparser.add_argument('n', nargs='?', type=int, default=999999999) return parser