File: //opt/saltstack/salt/lib/python3.10/site-packages/git/index/__pycache__/fun.cpython-310.pyc
o
;j�B � @ s� d Z g d�ZddlmZ ddlZddlmZ ddlm Z ddl
mZmZm
Z
mZmZmZmZ ddlZddlZddlmZ ddlmZ dd lmZmZ dd
lmZmZmZmZ ddl m!Z!m"Z" ddl#m$Z$m%Z%m&Z& dd
l'm(Z(m)Z) ddl*m+Z+m,Z,m-Z-m.Z.m/Z/ ddl0m1Z1m2Z2 ddl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z< ddl=m>Z> e8r�ddl?m@Z@ ddlAmBZB ddlCmDZD eeB ZE e. ZFdeGde>deGfdd�ZHdeGdeGfdd�ZIdeGddd eGddfd!d"�ZJd#eKdeKfd$d%�ZLde(fd&e7e;e,d'f d(e5eM d)e;deMf d*e:e( ddf
d+d,�ZNd(e5eM de9eKeKf fd-d.�ZOd/e;e,e>eKf de9e>eKf fd0d1�ZPd(e5eM de9eKe4e9e>eKf d'f eMeMf fd2d3�ZQ dBd&e6e- d4d5d6eRd7eKde9eMe6d8 f f
d9d:�ZSd;d8d<eKde,fd=d>�ZTd4d5d?e7eM de6e, fd@dA�ZUdS )CzVStandalone functions to accompany the index implementation and make it more
versatile.)�write_cache�
read_cache�write_tree_from_cache� entry_key�stat_mode_to_index_mode�S_IFGITLINK�run_commit_hook� hook_path� )�BytesION)�Path)�S_IFDIR�S_IFLNK�S_IFMT�S_IFREG�S_ISDIR�S_ISLNK�S_IXUSR)�IStream)�
str_tree_type)�handle_process_output�safer_popen)�defenc�force_bytes�
force_text�safe_decode)�HookExecutionError�UnmergedEntriesError)�traverse_tree_recursive�traverse_trees_recursive�tree_to_stream)�IndexFileSHA1Writer�finalize_process� )�CE_EXTENDED�BaseIndexEntry�
IndexEntry�CE_NAMEMASK�
CE_STAGESHIFT)�pack�unpack) �Dict�IO�List�Sequence�
TYPE_CHECKING�Tuple�Type�Union�cast)�PathLike)�GitCmdObjectDB)�TreeCacheTup)� IndexFile�name�git_dir�returnc C s t �|d| �S )zK:return: path to the given named hook in the given git repository directoryZhooks)�osp�join)r7 r8 � r<