L i?DddlZddlmZGddeZGddeZy)N)Actionc.eZdZdZddfd ZddZxZS)enva Get argument values from ``PET_{dest}`` before defaulting to the given ``default`` value. For flags (e.g. ``--standalone``) use ``check_env`` instead. .. note:: when multiple option strings are specified, ``dest`` is the longest option string (e.g. for ``"-f", "--foo"`` the env var to set is ``PET_FOO`` not ``PET_F``) Example: :: parser.add_argument("-f", "--foo", action=env, default="bar") ./program -> args.foo="bar" ./program -f baz -> args.foo="baz" ./program --foo baz -> args.foo="baz" PET_FOO="env_bar" ./program -f baz -> args.foo="baz" PET_FOO="env_bar" ./program --foo baz -> args.foo="baz" PET_FOO="env_bar" ./program -> args.foo="env_bar" parser.add_argument("-f", "--foo", action=env, required=True) ./program -> fails ./program -f baz -> args.foo="baz" PET_FOO="env_bar" ./program -> args.foo="env_bar" PET_FOO="env_bar" ./program -f baz -> args.foo="baz" c d|j}tjj||}|rd}t |d|||d|y)NPET_F)destdefaultrequired)upperosenvirongetsuper__init__)selfrr r kwargsenv_name __class__s e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/torch/distributed/argparse_util.pyrz env.__init__,sL$**,(**..73 H QdGhQ&Qc2t||j|yN)setattrrrparser namespacevalues option_strings r__call__z env.__call__9s 499f-r)NFreturnNr__name__ __module__ __qualname____doc__rr __classcell__rs@rrr s< R.rrc.eZdZdZddfd ZddZxZS) check_enva Check whether the env var ``PET_{dest}`` exists before defaulting to the given ``default`` value. Equivalent to ``store_true`` argparse built-in action except that the argument can be omitted from the commandline if the env var is present and has a non-zero value. .. note:: it is redundant to pass ``default=True`` for arguments that use this action because a flag should be ``True`` when present and ``False`` otherwise. Example: :: parser.add_argument("--verbose", action=check_env) ./program -> args.verbose=False ./program --verbose -> args.verbose=True PET_VERBOSE=1 ./program -> args.verbose=True PET_VERBOSE=0 ./program -> args.verbose=False PET_VERBOSE=0 ./program --verbose -> args.verbose=True Anti-pattern (don't do this): :: parser.add_argument("--verbose", action=check_env, default=True) ./program -> args.verbose=True ./program --verbose -> args.verbose=True PET_VERBOSE=1 ./program -> args.verbose=True PET_VERBOSE=0 ./program -> args.verbose=False c d|j}tttjj ||rdnd}t |d|d|dd|y)Nr10Tr)rconstr nargsr )r boolintr rrrr)rrr rrrs rrzcheck_env.__init__bsR$**,(s2::>>(7CLMN Sd$qSFSrcFt||j|jyr)rrr/rs rr zcheck_env.__call__gs 499djj1r)Fr!rr#r)s@rr+r+=s"HT 2rr+)r argparserrr+r rrr5s& -.&-.`+2+2r