o
    + i                     @   s   G d d dZ e  ZdS )c                   @   s0   e Zd Zdd Zd
ddZd
ddZdd	 ZdS )ConverterOpRegistryc                 C   s
   i | _ d S N)	_registry)self r   d/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/paddle/tensorrt/register.py__init__   s   
zConverterOpRegistry.__init__Nc                    s    fdd}|S )Nc                    s,    j vr
g j  < j   | f | S r   )r   append)funcop_namer   trt_versionr   r   	decorator   s   

z/ConverterOpRegistry.register.<locals>.decoratorr   )r   r   r   r   r   r
   r   register   s   zConverterOpRegistry.registerc                 C   sT   || j vrd S | j | D ]\}}| ||r|  S td| d| | j |S )NzRequested TensorRT version : z? does not match the range of pip installed tensorrt versions : )r   _version_match
ValueErrorget)r   r   r   version_ranger	   r   r   r   r      s   
zConverterOpRegistry.getc                 C   st   dd }||}d|v r'| d\}}||}|dko||kp&|dko&||kS d|v r8|d t| dd kS d	S )
a  
        Check if a given TensorRT version matches the specified version range.

        Args:
            trt_version (str): The TensorRT version, e.g., "8.4.1".
            version_range (str): The version range to check against, e.g.,
                                "trt_version_ge=8.2", "trt_version_le=7.1", or "8.x".

        Returns:
            bool: True if the version matches the range, False otherwise.
        c                 S   s(   t ttg | ddddd S )ae  
            Normalize the version string into a 3-tuple for easy comparison.
            If the version has fewer than 3 parts, it pads with zeros.

            Args:
                version (str): The version string, e.g., "8.4.1", "8.2", or "9".

            Returns:
                tuple: A tuple representing the version, e.g., (8, 4, 1).
            .0N   )tuplemapintsplit)versionr   r   r   _normalize_version6   s   (z>ConverterOpRegistry._version_match.<locals>._normalize_version=Ztrt_version_geZtrt_version_lex    r   F)r   r   )r   r   r   r   Ztrt_version_tupleZ
comparatorZref_versionZref_version_tupler   r   r   r   )   s   z"ConverterOpRegistry._version_matchr   )__name__
__module____qualname__r   r   r   r   r   r   r   r   r      s
    

	r   N)r   Zconverter_registryr   r   r   r   <module>   s   
J