관리-도구
편집 파일: __init__.cpython-39.pyc
a �!c� � @ s� d dl mZ d dl mZ ddlmZ d dlmZ d dlZd dl Zd dl Z dd� Zd d � Zdd� Z e d ddddddddddddddddddd d!d"d#d$d%��Zd&d'� Zd(d)� ZdS )*� )�absolute_import)�unicode_literals� )�transaction)�is_py3bytesNc C s� t j| d�}|�tjtjB � tjjD �]l}tj j r@t|d�}z|�d|�}W n> t tjfy� } z tj�dt|� ��W Y d}~n d}~0 0 t|�s�q(zt|�}W n" ty� d}tj�|��Y n0 |d }z�z|tj �|�}W n* t�y |tj �|�d��}Y n0 |tj | } |tj | } | tjk�r^| �r^|d ||�d�fv�r^| }W n tttf�yz Y n0 t|��r�t|d�}| S dS ) z-Calculate the release version for the system.)�root�utf-8Zprovidesz Error: %sNz:Error: rpmdb failed to list provides. Try: rpm --rebuilddb�version�utf8�name)r �initReadOnlyTransactionZpushVSFlags�rpmZ_RPMVSF_NOSIGNATURESZ_RPMVSF_NODIGESTS�dnf�constZDISTROVERPKGZpycompZPY3�bytesZdbMatch� TypeError�error� exceptions�Error�str�len�next� StopIterationZRPMTAG_PROVIDENAME�index� ValueError�decodeZRPMTAG_PROVIDEFLAGSZRPMTAG_PROVIDEVERSIONZRPMSENSE_EQUAL�KeyError� IndexErrorr )Zinstallroot�tsZdistroverpkg�idx�e�hdr�msgZ releaseverZoff�flagZver� r$ �4/usr/lib/python3.9/site-packages/dnf/rpm/__init__.py�detect_releasever sB * r&