o
    h?                     @   s8   d dl Z d dlmZ G dd deZG dd deZdS )    N)Actionc                       .   e Zd ZdZd	d
 fddZdddZ  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                    sB   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__r
   s/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/torch/distributed/argparse_util.pyr   ,   s
   zenv.__init__c                 C   s   t || j| d S N)setattrr   r   parser	namespacevaluesoption_stringr
   r
   r   __call__9   s   zenv.__call__)NFr   Nr   __name__
__module____qualname____doc__r   r   __classcell__r
   r
   r   r   r      s    r   c                       r   )	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                    sL   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   r
   r   r   b   s    zcheck_env.__init__c                 C   s   t || j| j d S r   )r   r   r)   r   r
   r
   r   r   g   s   zcheck_env.__call__)Fr   r   r    r
   r
   r   r   r&   =   s    $r&   )r   argparser   r   r&   r
   r
   r
   r   <module>   s   0