�
���g A � � � d Z ddlZddlZddlZddlZddlmZ ddlmZ ddl m
Z
ddlmZ ddl
mZmZmZmZmZmZmZmZ ddlmZ dd lmZ d
dlmZmZmZmZmZm Z m!Z!m"Z" d
dl#m$Z$ d
d
l%m&Z&m'Z' d
dl(m)Z) erd
dl*m+Z+ e j, e-� � Z. ej/ d� � Z0dZ1ddd�Z2e G d� d� � � � Z3e" d:dee3 dee4 de4de4dee4 dee4 deee4e4f deee5 ee5 f fd�� � Z6 G d� d e� � Z7 G d!� d"e� � Z8 d:d#d$d%edee4 deee4e4f dee4 ddfd&�Z9d'e5fd(�Z:d)e5fd*�Z;d+e5fd,�Z<d#d$d-e4ddfd.�Z=d#d$d/ed0e>d-e4ddf
d1�Z?d/ed2e3d0e>dee4 fd3�Z@d4ee d5e4de8fd6�ZAd#d$d7ee4 d0e>dee fd8�ZBd#d$d7ee4 d0e>dee fd9�ZCdS );z.Git LFS related type definitions and utilities� N)� dataclass)�ceil)�getsize)�Path)�
TYPE_CHECKING�BinaryIO�Dict�Iterable�List�Optional�Tuple� TypedDict)�unquote)� constants� )�build_hf_headers�fix_hf_endpoint_in_url�get_session�hf_raise_for_status�http_backoff�logging�tqdm�validate_hf_hub_args)�SliceFileObj)�sha256�sha_fileobj)�is_tqdm_disabled)�CommitOperationAddz^[0-9a-f]{40}$zlfs-multipart-uploadzapplication/vnd.git-lfs+json)�AcceptzContent-Typec � � e Zd ZU dZeed<