
    l0j                     t   d Z ddlZddlZddlZddlZddlZddlmZmZm	Z	 ddl
Z
ddlZddlmZ dedeeee         f         fdZdeeee         f         de	ee         eee                  f         fd	Zd
edeeeeeeee         f         f         f         fdZdedefdZde
j        defdZdedefdZdS )z'Utility function for gradio/external.py    N)DictListTuple)
components
model_namereturnc                    t          j        d|  d          }|j        dk    r t          j        d|  t
                     i }nt          j        d|j                  }|i }npt          t          j        |j        d |                                d                                      }|                    di                               di           }|st          d	|  d
          |                                D ]E}t          |          D ]3\  }}t!          |t"                    rt%          j        |          rd||<   4F|S )Nzhttps://huggingface.co/z/resolve/main/README.md   z%Cannot load examples from README for z,(?:^|[
])---[
]+([\S\s]*?)[
]+---([
]|$)widgetstructuredDataz&No example data found in README.md of z - Cannot build gradio demo. See the README.md here: https://huggingface.co/scikit-learn/tabular-playground/blob/main/README.md for a reference on how to provide example data to your model.NaN)requestsgetstatus_codewarningswarnUserWarningresearchtextnextyamlsafe_load_allspan
ValueErrorvalues	enumerate
isinstancefloatmathisnan)r   readmeexample_data
yaml_regexexample_yamldataivals           X/home/wildlama/miniconda3/envs/lam/lib/python3.11/site-packages/gradio/external_utils.pyget_tabular_examplesr+      sx   \WJWWWXXFS  JjJJKXXXYDfk
 

 LL"6;/F1B1B21F/F#GHH L (++Hb99==>NPRSSL 
LZ L L L
 
 	
 ##%%    oo 	  	 FAs#u%%  $*S//  Q	      r$   c                     t                                                     }t           fd|D                       }g }t          |          D ]l}g }|D ]P} |         pg }|t	          |          k    r|                    d           5|                    ||                    Q|                    |           m||fS )Nc              3   F   K   | ]}t          |         pg           V  d S )N)len).0headerr$   s     r*   	<genexpr>zcols_to_rows.<locals>.<genexpr>6   s5      GGV\&)/R00GGGGGGr,   r   )listkeysmaxranger/   append)r$   headersn_rowsr'   	row_indexrow_datar1   cols   `       r*   cols_to_rowsr=   2   s     <$$&&''GGGGGwGGGGGFD6]]  	 	0 	0Fv&,"CCHH$$&&&&I////HD=r,   incoming_datac                 x    i }t          | d                   D ]\  }fd| d         D             ||<   dd|iiS )Nr8   c                 :    g | ]}t          |                   S  )str)r0   rowr(   s     r*   
<listcomp>z rows_to_cols.<locals>.<listcomp>G   s#    #Q#Q#QCCAKK#Q#Q#Qr,   r'   inputs)r   )r>   data_column_wiser1   r(   s      @r*   rows_to_colsrG   D   sc    }Y788 R R	6#Q#Q#Q#Q=;P#Q#Q#Q  v/011r,   scoresc                     t          |                                 t          j        d          d          }|d         d         d |D             dS )N   T)keyreverser   c                 0    g | ]}|d          |d         dS )r   rJ   )label
confidencerA   )r0   preds     r*   rD   z%postprocess_label.<locals>.<listcomp>T   s5     
 
 
:>d1gT!W55
 
 
r,   )rN   confidences)sorteditemsoperator
itemgetter)rH   sorted_preds     r*   postprocess_labelrW   P   s`    X-@-C-CTRRRKQ"
 
BM
 
 
  r,   rc                 \   t          j        | j                                      d          }d}||v r|S | j                            d          }|dk    rN	 |                                 d         }|d         }|d         }n## t          $ r}t          d          |d }~ww xY w	 d| d| }|S )	Nzutf-8z;base64,zcontent-typezapplication/jsonr   blobz7Cannot determine content type returned by external API.zdata:)	base64	b64encodecontentdecoder8   r   jsonKeyErrorr   )rX   base64_reprdata_prefixcontent_typer'   ke
new_base64s          r*   encode_to_base64rf   Z   s    "19--44W==KKk!!y}}^44---vvxx{#N3"6l    M  @\@@;@@
s   *B 
B BB configc                      d  d         D              d<   d  d         D              d<   h d} fd|D               S )	zGStreamlines the interface config dictionary to remove unnecessary keys.c                 6    g | ]}t          j        |          S rA   r   get_component_instancer0   	components     r*   rD   z/streamline_spaces_interface.<locals>.<listcomp>{   s3        	))44  r,   input_componentsrE   c                 6    g | ]}t          j        |          S rA   rj   rl   s     r*   rD   z/streamline_spaces_interface.<locals>.<listcomp>   s3        	))44  r,   output_componentsoutputs>   titlerE   articlerq   descriptionflagging_optionsc                 "    i | ]}||         S rA   rA   )r0   krg   s     r*   
<dictcomp>z/streamline_spaces_interface.<locals>.<dictcomp>   s    ///qa///r,   rA   )rg   
parameterss   ` r*   streamline_spaces_interfacerz   y   s      23  F8  34  F9  J 0///J///FMr,   )__doc__r[   r!   rT   r   r   typingr   r   r   r   r   gradior   rB   r    r+   r=   rG   rW   Responserf   rz   rA   r,   r*   <module>r      s   - -    				  $ $ $ $ $ $ $ $ $ $        S T#tE{2B-C    <sDK'(
49d4;''(   $2 2c4T#tCy.=Q8Q3R.R)S 2 2 2 2d t    ) c    >       r,   