o
    i                     @   s:   d dl Z ddlmZ G dd deeZddddd	ZdS )
    N   )AutocommandErrorc                   @   s   e Zd ZdS )AutomainRequiresModuleErrorN)__name__
__module____qualname__ r   r   d/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/setuptools/_vendor/autocommand/automain.pyr      s    r   r   argskwargsc                   sF   t | rt| | dks| du rdu ri  fdd}|S dd S )a  
    This decorator automatically invokes a function if the module is being run
    as the "__main__" module. Optionally, provide args or kwargs with which to
    call the function. If `module` is "__main__", the function is called, and
    the program is `sys.exit`ed with the return value. You can also pass `True`
    to cause the function to be called unconditionally. If the function is not
    called, it is returned unchanged by the decorator.

    Usage:

    @automain(__name__)  # Pass __name__ to check __name__=="__main__"
    def main():
        ...

    If __name__ is "__main__" here, the main function is called, and then
    sys.exit called with the return value.
    __main__TNc                    s   t |  i  d S N)sysexitmainr
   r   r	   automain_decorator6   s   z$automain.<locals>.automain_decoratorc                 S   s   | S r   r   r   r   r   r	   <lambda>;   s    zautomain.<locals>.<lambda>)callabler   )moduler   r   r   r   r
   r	   automain   s   r   )r   errorsr   	TypeErrorr   r   r   r   r   r	   <module>   s   