U
    
W[                     @   sx   d Z ddlmZmZmZ ddlmZmZ dddZzddl	Z
W n$ ek
rb   G dd deZ
Y nX G d	d
 d
eZdS )z
System exit support.
    )stdoutstderrexit)ValuesValueConstantNc                 C   sP   t | tr| j}nt| }|rD|dkr,t}nt}|| |d t| dS )a  
    Exit the python interpreter with the given status and an optional message.

    @param status: An exit status.
    @type status: L{int} or L{ValueConstant} from L{ExitStatus}.

    @param message: An options message to print.
    @type status: L{str}
    r   
N)
isinstancer   valueintr   r   writesysexit)Zstatusmessagecodeout r   B/usr/lib/python3/dist-packages/twisted/application/runner/_exit.pyr      s    



r   c                   @   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_CONFIGr   r   r   r   r   -   s$   r   c                   @   s   e Zd ZdZeejZeejZeejZeej	Z	eej
Z
eejZeejZeejZeejZeejZeejZeejZeejZeejZeejZeejZdS )
ExitStatusa  
    Standard exit status codes for system programs.

    @cvar EX_OK: Successful termination.
    @type EX_OK: L{ValueConstant}

    @cvar EX_USAGE: Command line usage error.
    @type EX_USAGE: L{ValueConstant}

    @cvar EX_DATAERR: Data format error.
    @type EX_DATAERR: L{ValueConstant}

    @cvar EX_NOINPUT: Cannot open input.
    @type EX_NOINPUT: L{ValueConstant}

    @cvar EX_NOUSER: Addressee unknown.
    @type EX_NOUSER: L{ValueConstant}

    @cvar EX_NOHOST: Host name unknown.
    @type EX_NOHOST: L{ValueConstant}

    @cvar EX_UNAVAILABLE: Service unavailable.
    @type EX_UNAVAILABLE: L{ValueConstant}

    @cvar EX_SOFTWARE: Internal software error.
    @type EX_SOFTWARE: L{ValueConstant}

    @cvar EX_OSERR: System error (e.g., can't fork).
    @type EX_OSERR: L{ValueConstant}

    @cvar EX_OSFILE: Critical OS file missing.
    @type EX_OSFILE: L{ValueConstant}

    @cvar EX_CANTCREAT: Can't create (user) output file.
    @type EX_CANTCREAT: L{ValueConstant}

    @cvar EX_IOERR: Input/output error.
    @type EX_IOERR: L{ValueConstant}

    @cvar EX_TEMPFAIL: Temporary failure; the user is invited to retry.
    @type EX_TEMPFAIL: L{ValueConstant}

    @cvar EX_PROTOCOL: Remote error in protocol.
    @type EX_PROTOCOL: L{ValueConstant}

    @cvar EX_NOPERM: Permission denied.
    @type EX_NOPERM: L{ValueConstant}

    @cvar EX_CONFIG: Configuration error.
    @type EX_CONFIG: L{ValueConstant}
    N)r"   r#   r$   r%   r   r   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r   r   r   r   r6   F   s"   4














r6   )N)r%   sysr   r   r   r   Z
constantlyr   r   posixr   ImportErrorobjectr6   r   r   r   r   <module>   s   
