
    ɯwg?                     D    d dl Z d dlmZ  G d de      Z G d de      Zy)    N)Actionc                   .     e Zd ZdZdd fdZddZ xZS )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                          }t        j                  j                  ||      }|rd}t	        |   d|||d| y )NPET_F)destdefaultrequired )upperosenvirongetsuper__init__)selfr   r	   r
   kwargsenv_name	__class__s         d/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/torch/distributed/argparse_util.pyr   zenv.__init__,   sL    $**,(**..73 HQdGhQ&Q    c                 2    t        || j                  |       y N)setattrr   r   parser	namespacevaluesoption_strings        r   __call__zenv.__call__9   s    	499f-r   )NFreturnNr   __name__
__module____qualname____doc__r   r    __classcell__r   s   @r   r   r      s    <R.r   r   c                   .     e Zd ZdZdd fdZddZ xZS )	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                          }t        t        t        j                  j                  ||rdnd                  }t        |   d|d|dd| y )Nr   10Tr   )r   constr	   nargsr   )r   boolintr   r   r   r   r   )r   r   r	   r   r   r   s        r   r   zcheck_env.__init__b   sR    $**,(s2::>>(7CLMNSd$qSFSr   c                 F    t        || j                  | j                         y r   )r   r   r/   r   s        r   r    zcheck_env.__call__g   s    	499djj1r   )Fr!   r   r#   r)   s   @r   r+   r+   =   s    "HT
2r   r+   )r   argparser   r   r+   r   r   r   <module>r5      s&    
 -.& -.`+2 +2r   