Google
Edit File: packages.cpython-39.pyc
a ��j�\ � @ s" d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl Z d dlZd dlm Z d dlmZmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ ddlmZ ddl m!Z! ddl"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. e�/e0�Z1e�2� e3ee3 d �d d��Z4e3e3d�d d�Z5e�2� e3d�dd��Z6ede$e%�Z7e7e7d�dd�Z8G dd� de�Z9G dd� d�Z:G dd� de;e$�Z<G dd� d�Z=G dd� de=�Z>G d d!� d!e=�Z?G d"d#� d#e=�Z@G d$d%� d%e;e$�ZAG d&d'� d'�ZBG d(d)� d)�ZCG d*d+� d+ejDd,d-�ZEdS ).� N)�Path) �BinaryIO�Callable�ClassVar�Dict� Generator�Iterable�List� NamedTuple�Optional�Pattern�Sequence�Tuple�TypeVar)�bus� )�config)�__version__)� JsonError� JsonObject� JsonValue�get_bool�get_dict�get_enum�get_int�get_objv�get_str�get_strv�json_merge_patch�typechecked)�accept_language�returnc C s t �d| � g }| �d�D ]�}|�� �� }t �d|� |�d�\}}}zt|pPd�}W n tyl Y qY n0 |rt �d||� |�||f� |� d�\}}}qnq|j dd � d d� t �d|� g }|D ]&\}} |d kr� q�||vr�|�|� q�t �d|� t|�S )aL Parse the Accept-Language header, if it exists. Returns an ordered list of languages, with fallbacks inserted, and truncated to the position where 'en' would have otherwise appeared, if applicable. https://tools.ietf.org/html/rfc7231#section-5.3.5 https://datatracker.ietf.org/doc/html/rfc4647#section-3.4 zparse_accept_language(%r)�,z entry %rz;q=g �?z adding %r q=%r�-c S s | d S )Nr � )Zpairr$ r$ �4/usr/lib/python3.9/site-packages/cockpit/packages.py�<lambda>Y � z'parse_accept_language.<locals>.<lambda>T��key�reversez sorted list is %r�enz results list is %r)�logger�debug�split�strip�lower� partition�float� ValueError�append� rpartition�sort�tuple) r Zlocales_with_q�entry�locale�_Zqstr�qZ_region�resultsZ_qr$ r$ r% �parse_accept_language; s0 r= )�versionr! c C s d� dd� | �d�D ��S )z7Convert a version string to a form that can be compared�.c s s | ]}|� d �V qdS )� N)�zfill)�.0�partr$ r$ r% � <genexpr>o r'