當前位置: 首頁>>代碼示例>>Python>>正文


Python argparse.py方法代碼示例

本文整理匯總了Python中argparse.py方法的典型用法代碼示例。如果您正苦於以下問題:Python argparse.py方法的具體用法?Python argparse.py怎麽用?Python argparse.py使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在argparse的用法示例。


在下文中一共展示了argparse.py方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: set_defaults

# 需要導入模塊: import argparse [as 別名]
# 或者: from argparse import py [as 別名]
def set_defaults(args, cls):
    """Helper to set default arguments based on *add_args*."""
    if not hasattr(cls, 'add_args'):
        return
    parser = argparse.ArgumentParser(argument_default=argparse.SUPPRESS, allow_abbrev=False)
    cls.add_args(parser)
    # copied from argparse.py:
    defaults = argparse.Namespace()
    for action in parser._actions:
        if action.dest is not argparse.SUPPRESS:
            if not hasattr(defaults, action.dest):
                if action.default is not argparse.SUPPRESS:
                    setattr(defaults, action.dest, action.default)
    for key, default_value in vars(defaults).items():
        if not hasattr(args, key):
            setattr(args, key, default_value) 
開發者ID:pytorch,項目名稱:fairseq,代碼行數:18,代碼來源:registry.py

示例2: cli

# 需要導入模塊: import argparse [as 別名]
# 或者: from argparse import py [as 別名]
def cli():
    parser = argparse.ArgumentParser(
        description="Train or Run an RLlib Agent.",
        formatter_class=argparse.RawDescriptionHelpFormatter,
        epilog=EXAMPLE_USAGE)
    subcommand_group = parser.add_subparsers(
        help="Commands to train or run an RLlib agent.", dest="command")

    # see _SubParsersAction.add_parser in
    # https://github.com/python/cpython/blob/master/Lib/argparse.py
    train_parser = train.create_parser(
        lambda **kwargs: subcommand_group.add_parser("train", **kwargs))
    rollout_parser = rollout.create_parser(
        lambda **kwargs: subcommand_group.add_parser("rollout", **kwargs))
    options = parser.parse_args()

    if options.command == "train":
        train.run(options, train_parser)
    elif options.command == "rollout":
        rollout.run(options, rollout_parser)
    else:
        parser.print_help() 
開發者ID:ray-project,項目名稱:ray,代碼行數:24,代碼來源:scripts.py

示例3: __init__

# 需要導入模塊: import argparse [as 別名]
# 或者: from argparse import py [as 別名]
def __init__(self,
                 args: Optional[List[str]] = None,
                 name: str = "_") -> None:
        self.name = name
        self.isfirst = False
        self.islast = False

        self.parser = type(self)._init_parser(name)

        #
        # The if-else clauses below may seem like it can be avoided by:
        #
        #     [1] Passing the `args` function argument to parse_args() even if
        #         it is None - the call won't blow up.
        #
        #  or [2] Setting the default value of `args` to be [] instead of None.
        #
        # Solution [1] doesn't work because parse_args() actually distinguishes
        # between None and [] as parameters. If [] is passed it returns an
        # argparse.Namespace() with default values for all the fields that the
        # command specified in _init_parser(), which is what we want. If None
        # is passed then argparse's default logic is to attempt to parse
        # `_sys.argv[1:]` (reference code: cpython/Lib/argparse.py) which is
        # the arguments passed to the sdb from the shell. This is far from what
        # we want.
        #
        # Solution 2 is dangerous as default arguments in Python are mutable(!)
        # and thus invoking a Command with arguments that doesn't specify the
        # __init__() method can pass its arguments to a similar Command later
        # in the pipeline even if the latter Command didn't specify any args.
        # [docs.python-guide.org/writing/gotchas/#mutable-default-arguments]
        #
        # We still want to set self.args to an argparse.Namespace() with the
        # fields specific to our self.parser, thus we are forced to call
        # parse_args([]) for it, even if `args` is None. This way commands
        # using arguments can always do self.args.<expected field> without
        # having to check whether this field exist every time.
        #
        if args is None:
            args = []
        self.args = self.parser.parse_args(args) 
開發者ID:delphix,項目名稱:sdb,代碼行數:43,代碼來源:command.py

示例4: allow_missing_subcommand

# 需要導入模塊: import argparse [as 別名]
# 或者: from argparse import py [as 別名]
def allow_missing_subcommand():
    """Make Python 2.7 behave like Python 3 w.r.t. default subcommands.

    The behavior of argparse was changed [1] [2] in Python 3.3. When a
    parser defines subcommands, it used to be an error for the user to
    invoke the binary without specifying a subcommand. As of Python 3.3,
    this is permitted. This monkey patch backports the new behavior to
    earlier versions of Python.

    This context manager need only be used around `parse_args`; parsers
    may be constructed and configured outside of the context manager.

    [1]: https://github.com/python/cpython/commit/f97c59aaba2d93e48cbc6d25f7ff9f9c87f8d0b2
    [2]: https://bugs.python.org/issue16308
    """

    real_error = argparse.ArgumentParser.error

    # This must exactly match the error message raised by Python 2.7's
    # `argparse` when no subparser is given. This is `argparse.py:1954` at
    # Git tag `v2.7.16`.
    ignored_message = gettext.gettext("too few arguments")

    def error(*args, **kwargs):
        # Expected signature is `error(self, message)`, but we retain more
        # flexibility to be forward-compatible with implementation changes.
        if "message" not in kwargs and len(args) < 2:
            return real_error(*args, **kwargs)
        message = kwargs["message"] if "message" in kwargs else args[1]
        if message == ignored_message:
            return None
        else:
            return real_error(*args, **kwargs)

    argparse.ArgumentParser.error = error
    try:
        yield
    finally:
        argparse.ArgumentParser.error = real_error 
開發者ID:tensorflow,項目名稱:tensorboard,代碼行數:41,代碼來源:argparse_util.py


注:本文中的argparse.py方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。