o
    f~#g#                     @  st   d dl mZ d dlZd dlZd dlmZ G dd dejZdd ZG dd	 d	Z	G d
d de	Z
G dd de	ZdS )    )annotationsN)Iterablec                   @  s   e Zd Zdd ZdS )FontEncoderc                 C  s\   t |tr'd|jt |trdnt |trdndt |ttfr#|jdS d dS tj| |S )NTgooglelocalfont)__gradio_font__nameclassweights)	
isinstanceFontr	   
GoogleFont	LocalFontr   jsonJSONEncoderdefault)selfobj r   ~/var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/gradio/themes/utils/fonts.pyr   	   s   

zFontEncoder.defaultN)__name__
__module____qualname__r   r   r   r   r   r      s    r   c                 C  st   d| v r8| d }| d dkrd| v rt || d dS t |S | d dkr4d| v r0t|| d dS t|S t|S | S )Nr   r	   r
   r   r   )r   r   )r   r   r   )dctr	   r   r   r   as_font   s    r   c                   @  s>   e Zd ZdddZdddZdd	d
ZdddZdddZdS )r   r	   strc                 C  s
   || _ d S Nr	   )r   r	   r   r   r   __init__/      
zFont.__init__returnc                 C  s   | j dv r| j S d| j  dS )N)z
sans-serifserif	monospacecursivefantasy'r   r   r   r   r   __str__2   s
   
zFont.__str__dictc                 C  s
   d d dS )Nurlcssr   r'   r   r   r   
stylesheet9   r    zFont.stylesheetotherboolc                 C  s   | j |j ko|  | kS r   )r	   r-   )r   r.   r   r   r   __eq__<   s   zFont.__eq__c                 C  sD   t | }|jd |j }ddd | j D }d| d| dS )N.z, c                 S  s    g | ]\}}|d  t | qS )=)repr).0kvr   r   r   
<listcomp>B   s     z!Font.__repr__.<locals>.<listcomp><z (z)>)typer   r   join__dict__items)r   klass
class_reprattrsr   r   r   __repr__?   s   zFont.__repr__N)r	   r   )r!   r   r!   r)   )r.   r   r!   r/   )r   r   r   r   r(   r-   r0   r@   r   r   r   r   r   .   s    



r   c                   @  s"   e Zd ZddddZdd
dZdS )r     iX  r	   r   r   Iterable[int]c                 C  s   || _ || _d S r   )r	   r   r   r	   r   r   r   r   r   G   s   
zGoogleFont.__init__r!   r)   c                 C  s8   d| j dd dddd | jD  d}|d d	S )
Nz)https://fonts.googleapis.com/css2?family= +z:wght@;c                 s  s    | ]}t |V  qd S r   )r   )r4   weightr   r   r   	<genexpr>L   s    z(GoogleFont.stylesheet.<locals>.<genexpr>z&display=swapr*   )r	   replacer:   r   )r   r+   r   r   r   r-   K   s   .
zGoogleFont.stylesheetN)rB   r	   r   r   rD   rA   )r   r   r   r   r-   r   r   r   r   r   F   s    r   c                      s*   e Zd Zdd fddZdd
dZ  ZS )r   rC     r	   r   r   rD   c                   s   t  | || _d S r   )superr   r   rE   	__class__r   r   r   Q   s   
zLocalFont.__init__r!   r)   c              	   C  sl   t d}g }| jD ]#}|dkrdn	|dkrdnt|}||j| j| jdd|d q
d d	|d
S )Na	  
            @font-face {{
                font-family: '{name}';
                src: url('static/fonts/{file_name}/{file_name}-{weight}.woff2') format('woff2');
                font-weight: {weight};
                font-style: normal;
            }}
            rC   RegularrN   BoldrF    )r	   	file_namerI   
r*   )	textwrapdedentr   r   appendformatr	   rK   r:   )r   css_template	css_rulesrI   weight_namer   r   r   r-   U   s   

zLocalFont.stylesheet)rM   rL   rA   )r   r   r   r   r-   __classcell__r   r   rP   r   r   P   s    r   )
__future__r   r   rW   collections.abcr   r   r   r   r   r   r   r   r   r   r   <module>   s    
