File: //kunden/lib/python3/dist-packages/dulwich/__pycache__/server.cpython-39.pyc
a
�_� � @ s� d Z ddlZddlZddlZddlZddlZddlmZmZm Z m
Z
mZ ddlZddl
Z
ddlmZ ddlmZmZmZmZmZmZmZ ddlmZ ddlmZmZ ddlmZ dd lm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZD dd
lEmFZFmGZG ddlHmIZImJZJ e�KeL�ZMG dd
� d
eN�ZOG dd� deN�ZPG dd� deO�ZQG dd� deO�ZRG dd� deN�ZSG dd� deS�ZTG dd� deT�ZUdd� ZVdd� ZWdd� ZXd d!� ZYG d"d#� d#eN�ZZe2e1dfZ[G d$d%� d%eN�Z\G d&d'� d'eN�Z]G d(d)� d)eN�Z^G d*d+� d+eT�Z_G d,d-� d-eS�Z`eUe_e`d.�ZaG d/d0� d0e
jb�ZcG d1d2� d2e
jd�Zeejffd3d4�Zgejfdejhejifd5d6�Zjd7d8� Zkd9d:� Zld;d<� ZmeLd=k�r�eg� dS )>a� Git smart network protocol server implementation.
For more detailed implementation on the network protocol, see the
Documentation/technical directory in the cgit distribution, and in particular:
* Documentation/technical/protocol-capabilities.txt
* Documentation/technical/pack-protocol.txt
Currently supported capabilities:
* include-tag
* thin-pack
* multi_ack_detailed
* multi_ack
* side-band-64k
* ofs-delta
* no-progress
* report-status
* delete-refs
* shallow
* symref
� N)�List�Tuple�Dict�Optional�Iterable)�
tar_stream)�ApplyDeltaError�ChecksumMismatch�GitProtocolError� HookError�NotGitRepository�UnexpectedCommandError�ObjectFormatException)� log_utils)�Commit�valid_hexsha)�write_pack_objects)%�BufferedPktLineWriter�capability_agent�CAPABILITIES_REF�CAPABILITY_AGENT�CAPABILITY_DELETE_REFS�CAPABILITY_INCLUDE_TAG�CAPABILITY_MULTI_ACK_DETAILED�CAPABILITY_MULTI_ACK�CAPABILITY_NO_DONE�CAPABILITY_NO_PROGRESS�CAPABILITY_OFS_DELTA�CAPABILITY_QUIET�CAPABILITY_REPORT_STATUS�CAPABILITY_SHALLOW�CAPABILITY_SIDE_BAND_64K�CAPABILITY_THIN_PACK�COMMAND_DEEPEN�COMMAND_DONE�COMMAND_HAVE�COMMAND_SHALLOW�COMMAND_UNSHALLOW�COMMAND_WANT� MULTI_ACK�MULTI_ACK_DETAILED�Protocol�ProtocolFile�ReceivableProtocol�SIDE_BAND_CHANNEL_DATA�SIDE_BAND_CHANNEL_PROGRESS�SIDE_BAND_CHANNEL_FATAL�
SINGLE_ACK�TCP_GIT_PORT�ZERO_SHA�ack_type�extract_capabilities�extract_want_line_capabilities�symref_capabilities)�ANNOTATED_TAG_SUFFIX�write_info_refs)�BaseRepo�Repoc @ s e Zd ZdZdd� ZdS )�Backendz2A backend for the Git smart server implementation.c C s t | j��dS )z�Open the repository at a path.
Args:
path: Path to the repository
Raises:
NotGitRepository: no git repository was found at path
Returns: Instance of BackendRepo
N)�NotImplementedError�open_repository��self�path� rB �0/usr/lib/python3/dist-packages/dulwich/server.pyr>