Ejemplo n.º 1
0
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=[],
    )
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
    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