File: //usr/lib/python3/dist-packages/mercurial/hgweb/__pycache__/webutil.cpython-310.pyc
o
�]Lbl � @ s� d dl mZ d dlZd dlZd dlZd dlZddlmZ ddlm Z m
Z
ddlmZ ddl
mZmZmZmZ dd lmZmZmZmZmZmZmZmZmZmZmZmZmZmZ m!Z! dd
l"m#Z# e!�$d�Z%d}dd
�Z&dd� Z'd}dd�Z(G dd� de)�Z*G dd� de*�Z+dd� Z,d~dd�Z-dd� Z.dd� Z/d}dd�Z0d}d d!�Z1d"d#� Z2d$d%� Z3d&d'� Z4d(d)� Z5d*d+� Z6d,d-� Z7d.d/� Z8d}d0d1�Z9d}d2d3�Z:dd4d5�Z;d6d7� Z<d8d9� Z=d:d;� Z>d<d=� Z?d>d?� Z@d@dA� ZAdBdC� ZBdDdE� ZCdFdGheC_DdHdI� ZEdJdK� ZFdFdGheF_DdLdM� ZGdNdO� ZHdPdQ� ZIdRdS� ZJdTdU� ZKdVdW� ZLdXdY� ZMdZd[� ZNd\d]� ZOd^d_� ZPd�dadb�ZQdcdd� ZRdedf� ZSdgdh� ZTdidj� ZUdkdl� ZVdmdn� ZWdodp� ZXdqdr� ZYdsdt� ZZG dudv� dvej[�Z\G dwdx� dxe j�Z]dydz� Z^d{d|� Z_dS )�� )�absolute_importN� )�_)�hex�short)�setattr� )�
ErrorResponse�HTTP_BAD_REQUEST�HTTP_NOT_FOUND� paritygen)�context�diffutil�error�match�mdiff�obsutil�patch�pathutil�pycompat�scmutil�templatefilters�
templatekw�templateutil�ui�util)�
stringutil))� zip)s application/zipr s .zipN)s gz)s application/x-gzips tgzs .tar.gzN)s bz2)s application/x-bzip2s tbz2s .tar.bz2Nc C sf | j dddd�}g }t�t�D ]\}}||v s!| jdd| dd�r-|�||d ||d�� qt�|�S )N� webs
allow-archiveT�� untrusteds allowr )� types extension� nodes url)�
configlistr � iteritems�archivespecs�
configbool�appendr �mappinglist)r �nodeid�url�allowed�archives�typ�spec� r/ �9/usr/lib/python3/dist-packages/mercurial/hgweb/webutil.py�archivelist8 s
����
r1 c C sT | dd� dkrd| } | dd � dkr| d d� } t j�| �}|dkr&dS |d S )Nr r � /���)�os�path�dirname)�p�upr/ r/ r0 r8 L s r8 c c sv � |r+|V |dkr|dkrd}|V | dksJ �|dksJ �| |kr+| d9 } | |ks# d| V d| V | d9 } q,) N� �( �2 r �
Tr � r/ )�step� firststepr/ r/ r0 �_navseqW s ��
�r@ c @ s8 e Zd Zdd� Zdd� ZeZdd� Zdd� Zd d
� ZdS )�revnavc C s |j | _dS )zUNavigation generation object
:repo: repo object we generate nav for
N)� changelog�_revlog)�self�repor/ r/ r0 �__init__h s zrevnav.__init__c C s | � � duS )z,return True if any revision to navigate overN)�_first�rD r/ r/ r0 �__nonzero__p s zrevnav.__nonzero__c C s&