U
    �Acj|  ã                   @   s˜   d Z ddlZddlmZ ddlmZmZmZ ddlm	Z	 zddl
ZW n" ek
rf   G dd„ dƒZY nX G dd	„ d	eƒZde	eef eddœdd„ZdS )z
System exit support.
é    N)ÚIntEnum)ÚexitÚstderrÚstdout)ÚUnionc                   @   sŒ   e Zd ZdZdZdZeZed Zed Zed Z	ed Z
ed Zed	 Zed
 Zed Zed Zed Zed Zed Zed Zed ZdS )ÚStatuszT
        Object to hang C{EX_*} values off of as a substitute for L{posix}.
        é@   r   é   é   é   é   é   é   é   é   é	   é
   é   é   é   é   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ZEX__BASEÚEX_OKÚEX_USAGEÚ
EX_DATAERRÚ
EX_NOINPUTÚ	EX_NOUSERÚ	EX_NOHOSTÚEX_UNAVAILABLEÚEX_SOFTWAREÚEX_OSERRÚ	EX_OSFILEÚEX_CANTCREATÚEX_IOERRÚEX_TEMPFAILÚEX_PROTOCOLÚ	EX_NOPERMÚ	EX_CONFIG© r+   r+   úD/tmp/pip-unpacked-wheel-nrvc_22y/twisted/application/runner/_exit.pyr      s$   r   c                   @   sp   e Zd ZdZejZejZejZejZej	Z	ej
Z
ejZejZejZejZejZejZejZejZejZejZdS )Ú
ExitStatusa"  
    Standard exit status codes for system programs.

    @cvar EX_OK: Successful termination.
    @cvar EX_USAGE: Command line usage error.
    @cvar EX_DATAERR: Data format error.
    @cvar EX_NOINPUT: Cannot open input.
    @cvar EX_NOUSER: Addressee unknown.
    @cvar EX_NOHOST: Host name unknown.
    @cvar EX_UNAVAILABLE: Service unavailable.
    @cvar EX_SOFTWARE: Internal software error.
    @cvar EX_OSERR: System error (e.g., can't fork).
    @cvar EX_OSFILE: Critical OS file missing.
    @cvar EX_CANTCREAT: Can't create (user) output file.
    @cvar EX_IOERR: Input/output error.
    @cvar EX_TEMPFAIL: Temporary failure; the user is invited to retry.
    @cvar EX_PROTOCOL: Remote error in protocol.
    @cvar EX_NOPERM: Permission denied.
    @cvar EX_CONFIG: Configuration error.
    N)r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r+   r+   r,   r-   +   s"   r-   Ú ztyping.NoReturn)ÚstatusÚmessageÚreturnc                 C   s8   |r,| t jkrt}nt}| |¡ | d¡ t| ƒ dS )zê
    Exit the python interpreter with the given status and an optional message.

    @param status: An exit status. An appropriate value from L{ExitStatus} is
        recommended.
    @param message: An optional message to print.
    Ú
N)r-   r   r   r   ÚwriteÚsysexit)r/   r0   Úoutr+   r+   r,   r   S   s    


r   )r.   )r   ÚtypingÚenumr   Úsysr   r4   r   r   r   Úposixr   ÚImportErrorr-   ÚintÚstrr+   r+   r+   r,   Ú<module>   s   (