a
    )f                     @   sp   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 dd ZeZ	eej
jZG dd deZG dd	 d	eZdS )
    N   )get_unpatchedc                  C   s2   d} zt | dgdj W dS  ty,   Y n0 dS )z0
    Return True if Cython can be imported.
    zCython.Distutils.build_ext	build_ext)fromlistTF)
__import__r   	Exception)Zcython_impl r   M/var/www/ai-form-bot/venv/lib/python3.9/site-packages/setuptools/extension.py_have_cython
   s    r
   c                   @   s    e Zd ZdZdd Zdd ZdS )	Extensionz7Extension that uses '.c' files in place of '.pyx' filesc                 O   s.   | dd| _tj| ||g|R i | d S )Npy_limited_apiF)popr   
_Extension__init__)selfnamesourcesargskwr   r   r	   r   !   s    zExtension.__init__c                 C   sN   t  r
dS | jpd}| dkr$dnd}ttjd|}tt|| j	| _	dS )z
        Replace sources with .pyx extensions to sources with the target
        language extension. This mechanism allows language authors to supply
        pre-converted sources but to prefer the .pyx sources.
        N zc++z.cppz.cz.pyx$)
r
   languagelower	functoolspartialresublistmapr   )r   langZ
target_extr   r   r   r	   _convert_pyx_sources_to_lang'   s    
z&Extension._convert_pyx_sources_to_langN)__name__
__module____qualname____doc__r   r   r   r   r   r	   r      s   r   c                   @   s   e Zd ZdZdS )Libraryz=Just like a regular Extension, but built as a library insteadN)r    r!   r"   r#   r   r   r   r	   r$   6   s   r$   )r   r   distutils.core	distutilsdistutils.errorsdistutils.extensionmonkeyr   r
   Z
have_pyrexcorer   r   r$   r   r   r   r	   <module>   s   