o
    ƒÄŽi°  ã                   @   st   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ƒ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)Ú	flag_nameÚdefault_valueÚ	docstringc                    s   ‡ fdd„}|S )zBWraps absl.flags's define functions so tf.flags accepts old names.c                     sP   d}t  ¡ D ]\}}||v rd}| |¡}|||< q|r!t d¡ ˆ | i |¤Ž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.)Ú__RENAMED_ARGUMENTSÚitemsÚpopÚ_loggingÚwarning)ÚargsÚkwargsÚhas_old_namesÚold_nameÚnew_nameÚvalue©Úoriginal_function© úd/home/jeff/fluffinator/venv/lib/python3.10/site-packages/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__)ÚselfÚflags_objectr   r   r   Ú__init__E   ó   z_FlagValuesWrapper.__init__c                    s2   |dkr
t ƒ  |¡S |dkrt jS | jd  |¡S )Nr   Ú	__class__r   )ÚsuperÚ__getattribute__r"   r   ©r   r   ©r"   r   r   r$   H   s
   z#_FlagValuesWrapper.__getattribute__c                 C   s&   | j d }| ¡ s|tjƒ | |¡S r   )r   Ú	is_parsedÚ_sysÚargvÚ__getattr__)r   r   Úwrappedr   r   r   r*   O   s   


z_FlagValuesWrapper.__getattr__c                 C   ó   | j d  ||¡S r   )r   Ú__setattr__)r   r   r   r   r   r   r-   W   ó   z_FlagValuesWrapper.__setattr__c                 C   ó   | j d  |¡S r   )r   Ú__delattr__r%   r   r   r   r0   Z   ó   z_FlagValuesWrapper.__delattr__c                 C   ó   | j d  ¡ S r   )r   Ú__dir__©r   r   r   r   r3   ]   r!   z_FlagValuesWrapper.__dir__c                 C   r/   r   )r   Ú__getitem__r%   r   r   r   r5   `   r1   z_FlagValuesWrapper.__getitem__c                 C   r,   r   )r   Ú__setitem__)r   r   Úflagr   r   r   r6   c   r.   z_FlagValuesWrapper.__setitem__c                 C   r2   r   )r   Ú__len__r4   r   r   r   r8   f   r!   z_FlagValuesWrapper.__len__c                 C   r2   r   )r   Ú__iter__r4   r   r   r   r9   i   r!   z_FlagValuesWrapper.__iter__c                 C   r2   r   )r   Ú__str__r4   r   r   r   r:   l   r!   z_FlagValuesWrapper.__str__c                 O   s   | j d j|i |¤ŽS r   )r   Ú__call__)r   r   r   r   r   r   r;   o   s   z_FlagValuesWrapper.__call__)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r    r$   r*   r-   r0   r3   r5   r6   r8   r9   r:   r;   Ú__classcell__r   r   r&   r   r   =   s    r   )r?   Úloggingr   Úsysr(   Ú
absl.flagsÚdisclaim_key_flagsÚ_RENAMED_ARGUMENTSr   r   ÚDEFINE_stringÚDEFINE_booleanÚDEFINE_boolÚDEFINE_floatÚDEFINE_integerÚFLAGSr   r   r   r   Ú<module>   s"   ý9