<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
B
    ‘–ReT   ã               @   s”   d dl m Z  d dlmZ d dlm  mZ d dlZd dlZ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G dd„ dejƒZd	d
„ ZdS )é    )Úglob)Úconvert_pathN)Úunique_everseenc             C   s   t  | t  | ¡jtjB ¡ d S )N)ÚosÚchmodÚstatÚst_modeÚS_IWRITE)Útarget© r   ú‘/builddir/build/BUILDROOT/alt-python37-setuptools-58.3.0-4.el8.x86_64/opt/alt/python37/lib/python3.7/site-packages/setuptools/command/build_py.pyÚmake_writable   s    r   c               @   sŒ   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zedd„ ƒZd S )!Úbuild_pyaX  Enhanced 'build_py' command that includes data files with packages

    The data files are specified via a 'package_data' argument to 'setup()'.
    See 'setuptools.dist.Distribution' for more details.

    Also, this version of the 'build_py' command allows you to specify both
    'py_modules' and 'packages' in the same setup operation.
    c             C   s@   t j | ¡ | jj| _| jjp i | _d| jkr6| jd= g | _d S )NÚ
data_files)Úorigr   Úfinalize_optionsÚdistributionÚpackage_dataÚexclude_package_dataÚ__dict__Ú_build_py__updated_files)Úselfr   r   r   r      s    

zbuild_py.finalize_optionsc             C   sN   | j s| jsdS | j r|  ¡  | jr4|  ¡  |  ¡  |  tjj| dd¡ dS )z?Build modules, packages, and copy data files to build directoryNr   )Zinclude_bytecode)	Ú
py_modulesÚpackagesZbuild_modulesZbuild_packagesÚbuild_package_dataÚbyte_compiler   r   Úget_outputs)r   r   r   r   Úrun$   s    zbuild_py.runc             C   s&   |dkr|   ¡ | _| jS tj | |¡S )zlazily compute data filesr   )Ú_get_data_filesr   r   r   Ú__getattr__)r   Úattrr   r   r   r   4   s    
zbuild_py.__getattr__c             C   s.   t j | |||¡\}}|r&| j |¡ ||fS )N)r   r   Úbuild_moduler   Úappend)r   ÚmoduleZmodule_fileÚpackageÚoutfileÚcopiedr   r   r   r!   ;   s    zbuild_py.build_modulec             C   s   |   ¡  tt| j| jpdƒƒS )z?Generate list of '(package,src_dir,build_dir,filenames)' tuplesr   )Úanalyze_manifestÚlistÚmapÚ_get_pkg_data_filesr   )r   r   r   r   r   A   s    zbuild_py._get_data_filesc                sJ   |   |¡‰ tjj| jg| d¡ Ž }‡ fdd„|  |ˆ ¡D ƒ}|ˆ ||fS )NÚ.c                s   g | ]}t j |ˆ ¡‘qS r   )r   ÚpathÚrelpath)Ú.0Úfile)Úsrc_dirr   r   ú
<listcomp>O   s   z0build_py._get_pkg_data_files.<locals>.<listcomp>)Úget_package_dirr   r,   ÚjoinÚ	build_libÚsplitÚfind_data_files)r   r$   Ú	build_dirÚ	filenamesr   )r0   r   r*   F   s
    

zbuild_py._get_pkg_data_filesc             C   sX   |   | j||¡}tt|ƒ}tj |¡}ttj	j
|ƒ}t | j |g ¡|¡}|  |||¡S )z6Return filenames for package's data files in 'src_dir')Ú_get_platform_patternsr   r)   r   Ú	itertoolsÚchainÚfrom_iterableÚfilterr   r,   ÚisfileÚmanifest_filesÚgetÚexclude_data_files)r   r$   r0   ÚpatternsZglobs_expandedZglobs_matchesZ
glob_filesÚfilesr   r   r   r6   T   s    
zbuild_py.find_data_filesc       
      C   s|   xv| j D ]l\}}}}x^|D ]V}tj ||¡}|  tj |¡¡ tj ||¡}|  ||¡\}}	t|ƒ tj |¡}qW qW dS )z$Copy data files into build directoryN)	r   r   r,   r3   ÚmkpathÚdirnameÚ	copy_filer   Úabspath)
r   r$   r0   r7   r8   Úfilenamer
   ÚsrcfileÚoutfr&   r   r   r   r   e   s    
zbuild_py.build_package_datac             C   sô   i  | _ }| jjsd S i }x$| jp$dD ]}||t|  |¡ƒ< q&W |  d¡ |  d¡}xš|jj	D ]Ž}t
j t|ƒ¡\}}d }|}	x:|r¸||kr¸||kr¸|}t
j |¡\}}
t
j |
|¡}q€W ||kr^| d¡rÖ||	krÖq^| || g ¡ |¡ q^W d S )Nr   Úegg_infoz.py)r?   r   Zinclude_package_datar   Úassert_relativer2   Úrun_commandÚget_finalized_commandÚfilelistrC   r   r,   r5   r3   ÚendswithÚ
setdefaultr"   )r   ZmfZsrc_dirsr$   Zei_cmdr,   ÚdÚfÚprevZoldfZdfr   r   r   r'   p   s(    


zbuild_py.analyze_manifestc             C   s   d S )Nr   )r   r   r   r   Úget_data_filesˆ   s    zbuild_py.get_data_filesc          	   C   s¶   y
| j | S  tk
r   Y nX tj | ||¡}|| j |< |rF| jjsJ|S x,| jjD ]}||ksn| |d ¡rTP qTW |S t 	|d¡}| 
¡ }W dQ R X d|kr²tj d|f ¡‚|S )z8Check namespace packages' __init__ for declare_namespacer+   ÚrbNs   declare_namespacezÁNamespace package problem: %s is a namespace package, but its
__init__.py does not call declare_namespace()! Please fix it.
(See the setuptools manual under "Namespace Packages" for details.)
")Úpackages_checkedÚKeyErrorr   r   Úcheck_packager   Znamespace_packagesÚ
startswithÚioÚopenÚreadÚ	distutilsÚerrorsÚDistutilsError)r   r$   Úpackage_dirZinit_pyÚpkgrS   Úcontentsr   r   r   rY   ‹   s&    


zbuild_py.check_packagec             C   s   i | _ tj | ¡ d S )N)rW   r   r   Úinitialize_options)r   r   r   r   rd   ©   s    zbuild_py.initialize_optionsc             C   s0   t j | |¡}| jjd k	r,tj | jj|¡S |S )N)r   r   r2   r   Zsrc_rootr   r,   r3   )r   r$   Úresr   r   r   r2   ­   s    zbuild_py.get_package_dirc                s\   t ˆƒ‰|  | j||¡}‡fdd„|D ƒ}tj |¡}t|ƒ‰ ‡ fdd„ˆD ƒ}t t|ƒƒS )z6Filter filenames for package's data files in 'src_dir'c             3   s   | ]}t  ˆ |¡V  qd S )N)Úfnmatchr=   )r.   Úpattern)rC   r   r   ú	<genexpr>»   s    z.build_py.exclude_data_files.<locals>.<genexpr>c             3   s   | ]}|ˆ kr|V  qd S )Nr   )r.   Úfn)Úbadr   r   rh   ¿   s    )r(   r9   r   r:   r;   r<   Úsetr   )r   r$   r0   rC   rB   Zmatch_groupsÚmatchesZkeepersr   )rj   rC   r   rA   ³   s    zbuild_py.exclude_data_filesc                s.   t  |  dg ¡|  |g ¡¡}‡ fdd„|D ƒS )zÜ
        yield platform-specific path patterns (suitable for glob
        or fn_match) from a glob-based spec (such as
        self.package_data or self.exclude_package_data)
        matching package in src_dir.
        Ú c             3   s    | ]}t j ˆ t|ƒ¡V  qd S )N)r   r,   r3   r   )r.   rg   )r0   r   r   rh   Ñ   s   z2build_py._get_platform_patterns.<locals>.<genexpr>)r:   r;   r@   )Úspecr$   r0   Zraw_patternsr   )r0   r   r9   Ã   s
    

zbuild_py._get_platform_patternsN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r!   r   r*   r6   r   r'   rU   rY   rd   r2   rA   Ústaticmethodr9   r   r   r   r   r      s    r   c             C   s:   t j | ¡s| S ddlm} t d¡ ¡ |  }||ƒ‚d S )Nr   )ÚDistutilsSetupErrorzÓ
        Error: setup script specifies an absolute path:

            %s

        setup() arguments must *always* be /-separated paths relative to the
        setup.py directory, *never* absolute paths.
        )r   r,   ÚisabsÚdistutils.errorsrt   ÚtextwrapÚdedentÚlstrip)r,   rt   Úmsgr   r   r   rL   Ö   s    rL   )r   Údistutils.utilr   Zdistutils.command.build_pyÚcommandr   r   r   rf   rw   r[   rv   r^   r:   r   Z setuptools.extern.more_itertoolsr   r   rL   r   r   r   r   Ú<module>   s    E