
    g>	                     Z    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dS )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dS |                    dd          }t	          |t
                    r|d         }|sdS t          j	        dt          |                    }|dS t          |                    d	                    }||cxk    o|k    n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          b/var/www/html/ai-engine/env/lib/python3.11/site-packages/huggingface_hub/utils/endpoint_helpers.py_is_emission_within_thresholdr       s     %6%>abbb   H
K66I
9t]6K L Lu }}/66H(D!! )K( u iX77Gu7==++,,NCCCC2CCCCCC    )__doc__r   r   typingr   repocard_datar   hf_apir   r   boolr     r!   r   <module>r(      s    
  				             ) ) ) ) ) )  #""""""&Dk &De &Dhm &Drv &D &D &D &D &D &Dr!   