U
    Vc                     @   sv   d Z ddlZddlZddlmZ dd ZG dd dejZ	G d	d
 d
e	Z
G dd dejZdadd ZdddZdS )zGeneric entry point script.    N   )flagsc              
   C   s  t jd j}|s0dt jd  }tj|ddd}nL|dd|d	  }z|t jd f| ; }W n ttt	fk
rz   Y nX | rtj
 }n
ttj
}z8t j| |rt jd
 t j| t jd W n0 tk
r } z|jtjkr W 5 d}~X Y nX dS )zWrites __main__'s docstring to stdout with some help text.

    Args:
      shorthelp: bool, if True, prints only flags from the main module,
          rather than all flags.
    __main__z
USAGE: %s [flags]
r   z        )indentZfirstline_indent%   z%%z
flags:

N)_sysmodules__doc__argvr   Z	text_wrapcountOverflowError	TypeError
ValueErrorFLAGSZmain_module_helpstrstdoutwriteIOErrorerrno_errnoEPIPE)	shorthelpdocZnum_specifiersZflag_stre r   J/tmp/pip-unpacked-wheel-g8kmtpbc/tensorboard/compat/tensorflow_stub/app.py_usage   s*    
r   c                       s0   e Zd ZdZdZdZ fddZdd Z  ZS )	_HelpFlagz?Special boolean flag that displays usage and raises SystemExit.helphc                    s    t t| j| jdd| jd d S )NFzshow this help)Z
short_name)superr    __init__NAME
SHORT_NAMEself	__class__r   r   r$   B   s    
   z_HelpFlag.__init__c                 C   s*   |r&t dd t  td td d S )NTr   z*Try --helpfull to get a list of all flags.r   )r   printr
   exitr(   argr   r   r   parseG   s
    
z_HelpFlag.parse)	__name__
__module____qualname__r   r%   r&   r$   r0   __classcell__r   r   r)   r   r    <   s
   r    c                   @   s   e Zd ZdZdZdZdS )_HelpshortFlagz#--helpshort is an alias for --help.Z	helpshortN)r1   r2   r3   r   r%   r&   r   r   r   r   r5   O   s   r5   c                       s(   e Zd ZdZ fddZdd Z  ZS )_HelpfullFlagz@Display help for flags in main module and all dependent modules.c                    s   t t| ddd d S )NZhelpfullFzshow full help)r#   r6   r$   r'   r)   r   r   r$   Y   s    z_HelpfullFlag.__init__c                 C   s   |rt dd td d S )NFr+   r   )r   r
   r-   r.   r   r   r   r0   \   s    
z_HelpfullFlag.parse)r1   r2   r3   r   r$   r0   r4   r   r   r)   r   r6   V   s   r6   Fc                   C   s0   t s,tt  tt  tt  da d S )NT)_define_help_flags_calledr   ZDEFINE_flagr    r6   r5   r   r   r   r   _define_help_flagse   s
    r8   c                 C   sD   t   tj|dkrtjn|dd}| p0tjd j} t| | dS )zBRuns the program with an optional 'main' function and 'argv' list.NT)Z
known_onlyr   )r8   r   r   r
   r   r   mainr-   )r9   r   r   r   r   runo   s    r:   )NN)r   r   r   sysr
   r   r   r   ZBooleanFlagr    r5   r6   r7   r8   r:   r   r   r   r   <module>   s   $
