File: //proc/1233/cwd/usr/share/dh-python/dhpython/__pycache__/fs.cpython-310.pyc
o
O�IbBY � @ s d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dl m Z d dl
mZmZm
Z
mZmZmZmZmZmZmZ d dlmZ d dlmZmZmZmZ d dlmZ d dlmZm Z d d l!m"Z" e�#d
�Z$dd� Z%d
d� Z&dd� Z'dd� Z(dd� Z)dd� Z*dd� Z+G dd� d�Z,dS )� N)�cmp)�glob)
�lexists�exists�getsize�isdir�islink�join�realpath�relpath�split�splitext)�rmtree)�ST_MODE�S_IXUSR�S_IXGRP�S_IXOTH)�MULTIARCH_DIR_TPL)�fix_shebang�clean_egg_name)�Interpreter�dhpythonc
C sP t |�}|D ]�}||_|�| �}|�| �D ]%}t|�r:t�d||� t||||� zt� |� W q t
y9 Y qw q|j| dd�}|j| dd�D ]%}t|�rnt�d||� t||||� zt� |� W qI t
ym Y qIw qI|jr�d| |jf }|r�t|�r�d| |jf }t�d||� t||||� zt� |� W q t
y� Y qw qdS )z!Move files to the right location.zmoving files from %s to %sT)�gdbzdebian/%s%sN)
r �version�sitedir�old_sitedirsr �log�debug�share_files�os�
removedirs�OSError�symlinked_include_dir�include_dir)�package�interpreter�versions�optionsr �dstdir�srcdir� r* �#/usr/share/dh-python/dhpython/fs.py�
fix_locations( sL
��
�� ���r, c
s g }t �� �D �]^}t� |�}t|�sq|�d�rt �|� q|jsBt|�d dkrB|�� �}|rB|durBt �
|||�}t|�d }� �d�r�|dksP|�d�r_t �|� |�
t|gff� qt|�r�|dkr�|�
t� fd d
�tt� |d��D �ff� t|� qt||�}t|�s�t|�s�t �||� qt|�r�t|�s�t �||� qt|�t|�kr�t �|� qt|�r�t||||� qt||dd
�r�t �|� q|�d�r�|�� �r�t�d|� � t �|� q� �d��r|dkr�t||�r�|�
tdf� t �|� q|dk�rt||� t �|� qt�d|� qt�d||� |j�rf|�d��sft|��} | � � }
W d � n 1 �s:w Y t|��}|� � }W d � n 1 �sSw Y t!�"|
|||�}
t#j$�%|
� q|D ]
\}}||g|�R � �qizt �&� � W dS t'�y� Y dS w )z<Try to move as many files from srcdir to dstdir as possible.z.pyc���z.soT�
.dist-info�LICENSEzLICENSE.�
license_filesc s g | ]}t |� ��qS r* )r )�.0�license�r) r* r+ �
<listcomp>l s ��zshare_files.<locals>.<listcomp>z**F)�shallow)z.abi3.soz.abi4.soz2%s differs from previous one, removing anyway (%s)�WHEELr* �RECORDz%No merge driver for dist-info file %szPaths differ: %s and %sN)(r �listdirr r �endswith�remove�
no_ext_renamer
�parse_public_dir�Scan�
rename_extr �
startswith�append�remove_from_RECORDr r r r �renamesr r
r �cmpfiler �warning�merge_WHEEL�fix_merged_RECORD�merge_RECORD�warn�verbose�open� readlines�difflib�unified_diff�sys�stderr�
writelinesr r! )r) r( r% r'