File: //lib/python3/dist-packages/setuptools/__pycache__/extension.cpython-310.pyc
o
    �_�a�  �                   @   sp   d dl Z d dlZd dlZd dlZd dlZddlmZ dd� ZeZ	eej
j�ZG dd� de�ZG dd	� d	e�Z
dS )
�    N�   )�
get_unpatchedc                  C   s0   d} zt | dgd�j W dS  ty   Y dS w )z0
    Return True if Cython can be imported.
    zCython.Distutils.build_ext�	build_ext)�fromlistTF)�
__import__r   �	Exception)�cython_impl� r	   �6/usr/lib/python3/dist-packages/setuptools/extension.py�_have_cython
   s   �r   c                   @   s    e Zd ZdZdd� Zdd� ZdS )�	Extensionz7Extension that uses '.c' files in place of '.pyx' filesc                 O   s.   |� dd�| _tj| ||g|�R i |�� d S )N�py_limited_apiF)�popr
   �
_Extension�__init__)�self�name�sources�args�kwr	   r	   r
   r   !   s    zExtension.__init__c                 C   sN   t � rdS | jp	d}|�� dkrdnd}t�tjd|�}tt|| j	��| _	dS )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� zc++z.cppz.cz.pyx$)
r   �language�lower�	functools�partial�re�sub�list�mapr   )r   �lang�
target_extr   r	   r	   r
   �_convert_pyx_sources_to_lang'