3 �ft`� � @ s� d dl mZ d dl mZ d dlmZ d dlmZ d dlmZ d dl Z d dlZ d dlZ d dl Z d dlZd dlZd dlZdZejd�ZG d d � d e jj�ZG dd� de�ZdS ) � )�absolute_import)�unicode_literals)�hexlify)�unlink_f)�_Nz/usr/bin/applydeltarpm�dnfc sX e Zd Z� fdd�Zdd� Z� fdd�Zdd� Zed d � �Zedd� �Z d d� Z � ZS )�DeltaPayloadc s" t t| �j||� || _|| _d S )N)�superr �__init__� delta_info�delta)�selfr r �pkg�progress)� __class__� �/usr/lib/python3.6/drpm.pyr ) s zDeltaPayload.__init__c C s t jj| jj�S )N)�os�path�basenamer �location)r r r r �__str__. s zDeltaPayload.__str__c s2 t t| �j|||� |tjjjkr.| jj| � d S )N) r r �_end_cb�libdnf�repoZPackageTargetCBZTransferStatus_ERRORr �enqueue)r ZcbdataZ lr_status�msg)r r r r 1 s zDeltaPayload._end_cbc C sh | j }|j\}}tj|�}t|�j� }tjjj |�}|tjjj krRtjt d�|� |j|||j|jd�S )Nzunsupported checksum type: %s)Zrelative_urlZ checksum_typeZchecksumZexpectedsizeZbase_url)r �chksum�hawkeyZchksum_namer �decoder r Z PackageTargetZchecksumTypeZChecksumType_UNKNOWN�loggerZwarningr r �downloadsizeZbaseurl)r r ZctypeZcsumr Z ctype_coder r r �_target_params6 s zDeltaPayload._target_paramsc C s | j jS )N)r r! )r r r r � download_sizeH s zDeltaPayload.download_sizec C s | j jS )N)r r! )r r r r � _full_sizeL s zDeltaPayload._full_sizec C s$ | j j}tjj| jjjtjj|��S )N) r r r r �joinr r Zpkgdirr )r r r r r �localPkgP s zDeltaPayload.localPkg)�__name__� __module__�__qualname__r r r r" �propertyr# r$ r&