
    קg?                     R    d dl Z d dlmZ  G d de          Z G d de          ZdS )    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"
    NFreturnc                     d|                                  }t          j                            ||          }|rd} t	                      j        d|||d| d S )NPET_F)destdefaultrequired )upperosenvirongetsuper__init__)selfr	   r
   r   kwargsenv_name	__class__s         [/var/www/html/ai-engine/env/lib/python3.11/site-packages/torch/distributed/argparse_util.pyr   zenv.__init__,   sh    ($**,,((*..733  	HQdGhQQ&QQQQQ    c                 2    t          || j        |           d S N)setattrr	   r   parser	namespacevaluesoption_strings        r   __call__zenv.__call__9   s    	49f-----r   )NFr   Nr   __name__
__module____qualname____doc__r   r!   __classcell__r   s   @r   r   r      sg         <R R R R R R 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

    Fr   Nc                     d|                                  }t          t          t          j                            ||rdnd                              } t                      j        d|d|dd| d S )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   st    ($**,,((s2:>>(74KCCLLMMNNSd$qSSFSSSSSr   c                 <    t          || j        | j                   d S r   )r   r	   r/   r   s        r   r!   zcheck_env.__call__g   s    	49dj11111r   )Fr"   r   r#   r)   s   @r   r+   r+   =   sh        " "HT T T T T T T
2 2 2 2 2 2 2 2r   r+   )r   argparser   r   r+   r   r   r   <module>r5      s    
			      -. -. -. -. -.& -. -. -.`+2 +2 +2 +2 +2 +2 +2 +2 +2 +2r   