o
    Ô2úhö  ã                   @   s€   d Z ddlZddlZddlT ddlmZ 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 )zFImport router for absl.flags. See https://github.com/abseil/abseil-py.é    N)Ú*)Útf_decoratorÚnameÚdefaultÚhelp)Ú	flag_nameÚdefault_valueÚ	docstringc                    s   ‡ fdd„}t  ˆ |¡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© ú[/var/www/html/chatgem/venv/lib/python3.10/site-packages/tensorflow/python/platform/flags.pyÚwrapper*   s   
€ÿz&_wrap_define_function.<locals>.wrapper)r   Úmake_decorator)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.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__C   ó   z_FlagValuesWrapper.__init__c                    s$   |dkr
t ƒ  |¡S | jd  |¡S )Nr   r   )ÚsuperÚ__getattribute__r   ©r    r   ©Ú	__class__r   r   r%   F   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,   K   s   


z_FlagValuesWrapper.__getattr__c                 C   ó   | j d  ||¡S r   )r   Ú__setattr__)r    r   r   r   r   r   r/   S   ó   z_FlagValuesWrapper.__setattr__c                 C   ó   | j d  |¡S r   )r   Ú__delattr__r&   r   r   r   r2   V   ó   z_FlagValuesWrapper.__delattr__c                 C   ó   | j d  ¡ S r   )r   Ú__dir__©r    r   r   r   r5   Y   r#   z_FlagValuesWrapper.__dir__c                 C   r1   r   )r   Ú__getitem__r&   r   r   r   r7   \   r3   z_FlagValuesWrapper.__getitem__c                 C   r.   r   )r   Ú__setitem__)r    r   Úflagr   r   r   r8   _   r0   z_FlagValuesWrapper.__setitem__c                 C   r4   r   )r   Ú__len__r6   r   r   r   r:   b   r#   z_FlagValuesWrapper.__len__c                 C   r4   r   )r   Ú__iter__r6   r   r   r   r;   e   r#   z_FlagValuesWrapper.__iter__c                 C   r4   r   )r   Ú__str__r6   r   r   r   r<   h   r#   z_FlagValuesWrapper.__str__c                 O   s   | j d j|i |¤ŽS r   )r   Ú__call__)r    r   r   r   r   r   r=   k   s   z_FlagValuesWrapper.__call__)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r"   r%   r,   r/   r2   r5   r7   r8   r:   r;   r<   r=   Ú__classcell__r   r   r'   r   r   ;   s    r   )rA   Úloggingr   Úsysr*   Ú
absl.flagsÚtensorflow.python.utilr   Údisclaim_key_flagsr
   r   r   ÚDEFINE_stringÚDEFINE_booleanÚDEFINE_boolÚDEFINE_floatÚDEFINE_integerÚFLAGSr   r   r   r   Ú<module>   s$   ý7