U
    Vºc‹  ã                   @   sv   d Z ddlZddlZddlT eƒ  ddddœZdd	„ ZG d
d„ de	ƒZ
eeƒZeeƒZeZeeƒZeeƒZe
eƒZdS )zHImport router for absl.flags.

See https://github.com/abseil/abseil-py.
é    N)Ú*ÚnameÚdefaultÚhelp)Z	flag_nameÚdefault_valueZ	docstringc                    s   ‡ fdd„}|S )zBWraps absl.flags's define functions so tf.flags accepts old names.c                     sL   d}t  ¡ D ]&\}}||krd}| |¡}|||< q|rBt d¡ ˆ | |ŽS )z:Wrapper function that turns old keyword names to new ones.FTz€Use of the keyword argument names (flag_name, default_value, docstring) is deprecated, please use (name, default, help) instead.)Z__RENAMED_ARGUMENTSÚitemsÚpopÚ_loggingÚwarning)ÚargsÚkwargsZhas_old_namesZold_nameÚnew_nameÚvalue©Úoriginal_function© úL/tmp/pip-unpacked-wheel-g8kmtpbc/tensorboard/compat/tensorflow_stub/flags.pyÚwrapper+   s    

ÿz&_wrap_define_function.<locals>.wrapperr   )r   r   r   r   r   Ú_wrap_define_function(   s    r   c                       sx   e Zd ZdZdd„ Z‡ fdd„Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Z‡  ZS )Ú_FlagValuesWrapperzöWrapper class for absl.flags.FLAGS.

    The difference is that tf.compat.v1.flags.FLAGS implicitly parses
    flags with sys.argv when accessing the FLAGS values before it's
    explicitly parsed, while absl.flags.FLAGS raises an exception.
    c                 C   s   || j d< d S ©NÚ	__wrapped)Ú__dict__)ÚselfZflags_objectr   r   r   Ú__init__E   s    z_FlagValuesWrapper.__init__c                    s(   |dkrt t| ƒ |¡S | jd  |¡S )Nr   r   )Úsuperr   Ú__getattribute__r   ©r   r   ©Ú	__class__r   r   r   H   s    z#_FlagValuesWrapper.__getattribute__c                 C   s&   | j d }| ¡ s|tjƒ | |¡S r   )r   Z	is_parsedÚ_sysÚargvÚ__getattr__)r   r   Úwrappedr   r   r   r"   M   s    

z_FlagValuesWrapper.__getattr__c                 C   s   | j d  ||¡S r   )r   Ú__setattr__)r   r   r   r   r   r   r$   U   s    z_FlagValuesWrapper.__setattr__c                 C   s   | j d  |¡S r   )r   Ú__delattr__r   r   r   r   r%   X   s    z_FlagValuesWrapper.__delattr__c                 C   s   | j d  ¡ S r   )r   Ú__dir__©r   r   r   r   r&   [   s    z_FlagValuesWrapper.__dir__c                 C   s   | j d  |¡S r   )r   Ú__getitem__r   r   r   r   r(   ^   s    z_FlagValuesWrapper.__getitem__c                 C   s   | j d  ||¡S r   )r   Ú__setitem__)r   r   Úflagr   r   r   r)   a   s    z_FlagValuesWrapper.__setitem__c                 C   s   | j d  ¡ S r   )r   Ú__len__r'   r   r   r   r+   d   s    z_FlagValuesWrapper.__len__c                 C   s   | j d  ¡ S r   )r   Ú__iter__r'   r   r   r   r,   g   s    z_FlagValuesWrapper.__iter__c                 C   s   | j d  ¡ S r   )r   Ú__str__r'   r   r   r   r-   j   s    z_FlagValuesWrapper.__str__c                 O   s   | j d j||ŽS r   )r   Ú__call__)r   r   r   r   r   r   r.   m   s    z_FlagValuesWrapper.__call__)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r"   r$   r%   r&   r(   r)   r+   r,   r-   r.   Ú__classcell__r   r   r   r   r   =   s   r   )r2   Úloggingr	   Úsysr    Z
absl.flagsZdisclaim_key_flagsZ_RENAMED_ARGUMENTSr   Úobjectr   ZDEFINE_stringZDEFINE_booleanZDEFINE_boolZDEFINE_floatZDEFINE_integerÚFLAGSr   r   r   r   Ú<module>   s    ý7