
    g>	                     X    d Z ddlZddlZddlmZ ddlmZ erddlmZ ddd	e	d
e	de
fdZy)zz
Helpful utility functions and classes in relation to exploring API endpoints
with the aim for a user-friendly interface.
    N)TYPE_CHECKING   )ModelCardData)	ModelInfo
model_infor   minimum_thresholdmaximum_thresholdreturnc                    ||t        d      |d}|t        j                  }t        | dd      }|t	        |t
        t        f      sy|j                  dd      }t	        |t
              r|d   }|syt        j                  dt        |            }|yt        |j                  d	            }||cxk  xr |k  S c S )
a  Checks if a model's emission is within a given threshold.

    Args:
        model_info (`ModelInfo`):
            A model info object containing the model's emission information.
        minimum_threshold (`float`):
            A minimum carbon threshold to filter by, such as 1.
        maximum_threshold (`float`):
            A maximum carbon threshold to filter by, such as 10.

    Returns:
        `bool`: Whether the model's emission is within the given threshold.
    NzFBoth `minimum_threshold` and `maximum_threshold` cannot both be `None`	card_dataFco2_eq_emissions	emissionsz\d+\.\d+|\d+r   )
ValueErrormathinfgetattr
isinstancedictr   getresearchstrfloatgroup)r   r   r	   r   emissionmatchedemission_values          [/var/www/openai/venv/lib/python3.12/site-packages/huggingface_hub/utils/endpoint_helpers.py_is_emission_within_thresholdr       s      %6%>abb   HH
K6I
9t]6K L }}/6H(D!K( iiX7G7==+,NC2CCCCC    )__doc__r   r   typingr   repocard_datar   hf_apir   r   boolr     r!   r   <module>r(      sH   
  	   ) "&Dk &De &Dhm &Drv &Dr!   