File: //lib/python3.6/site-packages/tracer/packageManagers/__pycache__/alpm.cpython-36.pyc
3
�|
`� � @ sx d dl mZ d dlmZ ej� d
krtd dlZddlmZ d dlm Z d d l
mZ d d
lm
Z
d dlZG dd� de�ZdS )� )�absolute_import)�System�arch�archarmN� )�IPackageManager)�Package)�PackagesCollection)�Applicationsc @ sH e Zd Zdd� Zdd� Zdd� Zdd� Zd d
� Zedd� �Z d
d� Z
dS )�Alpmc O s$ || _ tjdd�| _| jj� | _d S )N�/z/var/lib/pacman)Zopts�pyalpmZHandleZhandleZget_localdb�db)�self�args�kwargs� r �/usr/lib/python3.6/alpm.py�__init__ s z
Alpm.__init__c C s: t � }x.| jjD ]"}|j|kr|jt|j|j�� qW |S )zR
Returns list of packages which were modified between unix_time and present
)r r �pkgcache�installdate�appendr �name)r Z unix_timeZnew_pkgs�pkgr r r �packages_newer_than% s
zAlpm.packages_newer_thanc C s$ | j j|�}|sg S dd� |jD �S )z1
Returns list of files provided by package
c S s g | ]}d |d �qS )r r r )�.0�fr r r �
<listcomp>8 s z&Alpm.package_files.<locals>.<listcomp>)r �get_pkg�files)r Zpkg_namer r r r �
package_files0 s zAlpm.package_filesc C s2 |sdS | j j|j�}|sdS |j|_|j|_dS )zN
From database load informations about given package and set them to it
N)r r r Zdesc�descriptionr Zmodified)r �packager r r r �load_package_info: s zAlpm.load_package_infoc C s |j d }| j|j�S )z@
Returns name of package which provides given application
r )Z instances�_file_provided_byZexe)r ZappZprocessr r r �provided_byI s
zAlpm.provided_byc C s0 t j| |�}|t| �kr(| | |kr(dS dS dS )z5
Searches a sorted list, returns True if found
TFN)�bisectZbisect_left�len)�l�item�ir r r �
_bsearch_listQ s zAlpm._bsearch_listc C sL xF| j jD ]6}dd� |jD �}| j||dd� �r
t|j|j�S q
W dS dS )z9
Returns name of package which provides given file
c S s g | ]}|d �qS )r r )r r r r r r b s z*Alpm._file_provided_by.<locals>.<listcomp>r N)r r r r+ r r r )r � file_namer r r r r r$ \ s
zAlpm._file_provided_byN)�__name__�
__module__�__qualname__r r r r# r% �staticmethodr+ r$ r r r r r s
r )r r )Z
__future__r Ztracer.resources.systemr Zdistributionr&