관리-도구
편집 파일: group.cpython-39.opt-1.pyc
a �����!c�<����������������������@���s����d�dl�Zd�dlZd�dlZd�dlZd�dlmZ�d�dlm Z �d�dl Z G�dd��de�ZG�dd��de�Z G�dd ��d e�ZG�d d��de�ZdS�)�����N)�_)�loggerc�������������������@���sl���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z dd��Z dd��Zdd��Zdd��Z dd��ZdS�)� PersistorBasec�����������������C���s"���||�_�i�|�_i�|�_i�|�_i�|�_d�S��N)�history� _installed�_removed� _upgraded�_downgraded)�selfr�����r����0/usr/lib/python3.9/site-packages/dnf/db/group.py�__init__ ���s ����zPersistorBase.__init__c�����������������C���s(���t�|�j�t�|�j��t�|�j��t�|�j��S�r���)�lenr���r���r ���r ����r���r���r���r ����__len__(���s����zPersistorBase.__len__c�����������������C���s���i�|�_�i�|�_i�|�_i�|�_d�S�r���)r���r���r ���r ���r���r���r���r ����clean+���s����zPersistorBase.cleanc�����������������C���s���t��d�S�r�����NotImplementedError�r����objr���r���r ����_get_obj_id1���s����zPersistorBase._get_obj_idc�����������������C���s*���|�j�j�|d|tjj�}|�tjj��d�S�)N��)r����swdb�addItem�libdnf�transaction�TransactionItemReason_USERZsetStateZTransactionItemState_DONE)r����item�action�tir���r���r ����_add_to_history4���s����zPersistorBase._add_to_historyc�����������������C���s$���||�j�|��|�<�|��|tjj��d�S�r���)r���r���r!���r���r����TransactionItemAction_INSTALLr���r���r���r ����install8���s����zPersistorBase.installc�����������������C���s$���||�j�|��|�<�|��|tjj��d�S�r���)r���r���r!���r���r����TransactionItemAction_REMOVEr���r���r���r ����remove<���s����zPersistorBase.removec�����������������C���s$���||�j�|��|�<�|��|tjj��d�S�r���)r ���r���r!���r���r����TransactionItemAction_UPGRADEr���r���r���r ����upgrade@���s����zPersistorBase.upgradec�����������������C���s$���||�j�|��|�<�|��|tjj��d�S�r���)r ���r���r!���r���r����TransactionItemAction_DOWNGRADEr���r���r���r ���� downgradeD���s����zPersistorBase.downgradec�����������������C���s���t��d�S�r���r���)r����obj_id�name�translated_name� pkg_typesr���r���r ����newH���s����zPersistorBase.newc�����������������C���s���t��d�S�r���r���)r���r*���r���r���r ����getK���s����zPersistorBase.getc�����������������C���s���t��d�S�r���r����r����patternr���r���r ����search_by_patternN���s����zPersistorBase.search_by_patternN)�__name__� __module__�__qualname__r���r���r���r���r!���r#���r%���r'���r)���r.���r/���r2���r���r���r���r ���r������s���r���c�������������������@���sD���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z dS�)�GroupPersistorc�����������������C���s"���|�j�j���}dd��|D��}t|�S�)Nc�����������������S���s���g�|�]}|����r|�qS�r���)�getCompsGroupItem��.0�ir���r���r ���� <listcomp>V��������z+GroupPersistor.__iter__.<locals>.<listcomp>�r���r����getItems�iter�r����itemsr���r���r ����__iter__T���s����zGroupPersistor.__iter__c�����������������C���s���|����S�r���)� getGroupIdr���r���r���r ���r���Y���s����zGroupPersistor._get_obj_idc�����������������C���sH���|�j�j���}|�|��|d�ur(|�|��|d�ur:|�|��|�|��|S�r���)r���r���ZcreateCompsGroupItemZ setGroupId�setName�setTranslatedName�setPackageTypes)r���r*���r+���r,���r-���� swdb_groupr���r���r ���r.���\���s���� zGroupPersistor.newc�����������������C���s"���|�j�j�|�}|sd�S�|���}|S�r���)r���r���r7���)r���r*���rG���r���r���r ���r/���f���s ����zGroupPersistor.getc�����������������C���s���|�j�j�|�S�r���)r���r���ZgetCompsGroupItemsByPatternr0���r���r���r ���r2���m���s����z GroupPersistor.search_by_patternc�����������������C���s���|�j�j�|�S�r���)r���r���ZgetPackageCompsGroups)r����pkg_namer���r���r ����get_package_groupsp���s����z!GroupPersistor.get_package_groupsc�����������������C���s����|�j�j�|dd�}|tjjkr"dS�t|��|��}|�j� ��D�]8\}}|� ��D�]&}|���|kr\qJ|���sfqJ|� |��qJq:|�j� ��D�]8\}}|� ��D�]&}|���|kr�q�|���s�q�|�|��q�q~|r�dS�dS�)Nr������FT)r���r����resolveRPMTransactionItemReasonr���r���ZTransactionItemReason_GROUP�setrI���r���rA���ZgetPackages�getName�getInstalledr%���r����add)r���rH����reasonZpackage_groups�group_id�group�pkgr���r���r ����is_removable_pkgs���s*����zGroupPersistor.is_removable_pkgN) r3���r4���r5���rB���r���r.���r/���r2���rI���rT���r���r���r���r ���r6���R���s��� r6���c�������������������@���sD���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z dS�)�EnvironmentPersistorc�����������������C���s"���|�j�j���}dd��|D��}t|�S�)Nc�����������������S���s���g�|�]}|����r|�qS�r���)�getCompsEnvironmentItemr8���r���r���r ���r;�������r<���z1EnvironmentPersistor.__iter__.<locals>.<listcomp>r=���r@���r���r���r ���rB�������s����zEnvironmentPersistor.__iter__c�����������������C���s���|����S�r���)ZgetEnvironmentIdr���r���r���r ���r�������s����z EnvironmentPersistor._get_obj_idc�����������������C���sH���|�j�j���}|�|��|d�ur(|�|��|d�ur:|�|��|�|��|S�r���)r���r���ZcreateCompsEnvironmentItemZsetEnvironmentIdrD���rE���rF���)r���r*���r+���r,���r-����swdb_envr���r���r ���r.�������s���� zEnvironmentPersistor.newc�����������������C���s"���|�j�j�|�}|sd�S�|���}|S�r���)r���r���rV���)r���r*���rW���r���r���r ���r/�������s ����zEnvironmentPersistor.getc�����������������C���s���|�j�j�|�S�r���)r���r���Z!getCompsEnvironmentItemsByPatternr0���r���r���r ���r2�������s����z&EnvironmentPersistor.search_by_patternc�����������������C���s���|�j�j�|�S�r���)r���r���ZgetCompsGroupEnvironments)r���rQ���r���r���r ����get_group_environments����s����z+EnvironmentPersistor.get_group_environmentsc�����������������C���s����|�j�j�|�}|sdS�t|��|��}|�j���D�]8\}}|���D�]&}|���|krPq>|� ��sZq>|� |��q>q.|�j���D�]8\}}|���D�]&}|���|kr�q�|� ��s�q�|�|��q�qr|r�dS�dS�)NFT) r���rR���r/���rL���rX���r���rA���Z getGroupsrC���rN���r%���r���rO���)r���rQ���rG���Zgroup_environmentsZenv_id�envrR���r���r���r ����is_removable_group����s*����z'EnvironmentPersistor.is_removable_groupN) r3���r4���r5���rB���r���r.���r/���r2���rX���rZ���r���r���r���r ���rU�������s��� rU���c�������������������@���s����e�Zd�Zd,dd�Zdd��Zdd��Zdd ��Zd-d d�Zdd ��Zdd��Z dd��Z d.dd�Zd/dd�Zd0dd�Z d1dd�Zd2dd�Zd3dd�Zd4dd�Zd d!��Zd"d#��Zed$d%���Zed&d'���Zd(d)��Zd*d+��ZdS�)5�RPMTransactionNc�����������������C���s:���||�_�||�_|�js0z|�j�j����W�n���Y�n0�i�|�_d�S�r���)r���r���r���ZinitTransaction�_swdb_ti_pkg)r���r���r���r���r���r ���r�������s����zRPMTransaction.__init__c��������������������s8�����j�r��j����}n��jj���}��fdd�|D��}t|�S�)Nc��������������������s&���g�|�]}|����rtjj���j|��qS�r����Z getRPMItem�dnfZdbr���ZRPMTransactionItemWrapperr8���r���r���r ���r;�������r<���z+RPMTransaction.__iter__.<locals>.<listcomp>)r���r>���r���r���r?���r@���r���r���r ���rB�������s ����zRPMTransaction.__iter__c��������������������s8�����j�r��j����}n��jj���}��fdd�|D��}t|�S�)Nc��������������������s&���g�|�]}|����rtjj���j|��qS�r���r]���r8���r���r���r ���r;�������r<���z*RPMTransaction.__len__.<locals>.<listcomp>)r���r>���r���r���r���r@���r���r���r ���r�������s ����zRPMTransaction.__len__c�����������������C���sP���|�j�j���}|�|j��|�|jp$d��|�|j��|� |j ��|�|j��|S�)Nr���) r���r���Z createRPMItemrD���r+���ZsetEpochZepochZ setVersion�versionZ setRelease�releaseZsetArch�arch)r���rS����rpm_itemr���r���r ����_pkg_to_swdb_rpm_item����s����z$RPMTransaction._pkg_to_swdb_rpm_itemc�����������������C���sV���|���|�}|��|�}|d�u�r&|��|�}|�jj�||||�}|rH|�|��||�j|<�|S�r���)rc���� get_repoid� get_reasonr���r���r���� addReplacedByr\���)r���rS���r���rP����replaced_byrb���Zrepoid�resultr���r���r ���r.�������s���� zRPMTransaction.newc�����������������C���s���t�|dd��}|r|S�|jS�)NZ_force_swdb_repoid)�getattrZreponame)r���rS���rh���r���r���r ���rd�������s����zRPMTransaction.get_repoidc�����������������C���s���|�j�j�|j|jd�S�)�Get reason for package���)r���r���rK���r+���ra����r���rS���r���r���r ���re�����s����zRPMTransaction.get_reasonc�����������������C���s���t�j�|��|��S�)rj���)r���r���ZTransactionItemReasonToStringre���rl���r���r���r ����get_reason_name��s����zRPMTransaction.get_reason_namec�����������������C���s4���|pg�}|D�]"}|���|tjj�}|r|�|��qd�S�r���)r.���r���r����TransactionItemAction_OBSOLETEDrf���)r���� obsoletedrg���Zobsr ���r���r���r ����_add_obsoleted ��s ����zRPMTransaction._add_obsoletedc�����������������C���s6���|���|tjj�}|�j�|tjj|d�}|�j||d��d�S��N)rg���)r.���r���r���r(���� TransactionItemAction_DOWNGRADEDrp����r���r.����oldro����ti_new�ti_oldr���r���r ���� add_downgrade��s����zRPMTransaction.add_downgradec�����������������C���s���|���||��d�S�r���)� add_remove)r���rt���rP���r���r���r ���� add_erase��s����zRPMTransaction.add_erasec�����������������C���s4���|d�u�rt�jj}|��|t�jj|�}|�j||d��d�S�rq���)r���r���r���r.���r"���rp���)r���r.���ro���rP���ru���r���r���r ����add_install��s����zRPMTransaction.add_installc�����������������C���s6���|���|tjj�}|�j�|tjj|d�}|�j||d��d�S�rq���)r.���r���r����TransactionItemAction_REINSTALL�!TransactionItemAction_REINSTALLEDrp���rs���r���r���r ���� add_reinstall��s����zRPMTransaction.add_reinstallc�����������������C���s"���|p t�jj}|��|t�jj|�}d�S�r���)r���r���r���r.���r$���)r���rt���rP���rv���r���r���r ���rx���$��s����zRPMTransaction.add_removec�����������������C���s6���|���|tjj�}|�j�|tjj|d�}|�j||d��d�S�rq���)r.���r���r���r&����TransactionItemAction_UPGRADEDrp���rs���r���r���r ����add_upgrade(��s����zRPMTransaction.add_upgradec�����������������C���s^���|j�r dS�|jjrdS�z.|d�rB|���sBt�td��|���W�dS�W�n�tyX���Y�dS�0�dS�)Nr���Zmodularitylabelz\No available modular metadata for modular package '{}', it cannot be installed on the system����) Z _from_cmdlineZrepoZmodule_hotfixesZ_is_in_active_moduler���Zcriticalr����format� ValueError)r����hdrrS���r���r���r ����_test_fail_safe-��s����� zRPMTransaction._test_fail_safec�����������������C���sL��d}|�D��]&}�z�|j�tjjkrL|jj}||��||j�7�}|�||d���n�|j�tjjkrl|� |jj ���n�|j�tjjkr�|jj}||��||j�7�}|�||d���nJ|j�tjjkr�|jj}||��||j�7�}|�||d���n|j�tjj kr�|� |jj ��n�|j�tjjk�r6|jj}||��||j�7�}|�||��n�|j�tjjk�rV|� |jj ��n�|j�tjjk�rv|� |jj ��nz|j�tjjk�r�|jj}||��||j�7�}|�||d��n@|j�tjjk�r�|� |jj ��n |j�tjjk�r�ntd|j����W�q�tj�y.�}�z tj�td|����W�Y�d}~qd}~0�0�q|�rHtj�td���|S�)z!Populate the RPM transaction set.r����ur:���z%TransactionItemAction not handled: %szAn rpm exception occurred: %sNz1No available modular metadata for modular package)r���r���r���r(���rS���Z_headerr����Z addInstallrr���ZaddErase�idxr"���ZTransactionItemAction_OBSOLETErn���r{���ZaddReinstallr|���r$���r&���r~���Z#TransactionItemAction_REASON_CHANGE�RuntimeError�rpm�errorr^���� exceptions�Errorr���)r����tsZmodular_problems�tsir�����er���r���r ����_populate_rpm_ts;��sR���� ,zRPMTransaction._populate_rpm_tsc�������������� ���C���sR���t���}|�D�]B}|jtjjv�r z|�|j��W�q �tyJ���td|���Y�q 0�q |S��Nz*TransactionItem is has no RPM attached: %s) rL���r���r^���r���ZFORWARD_ACTIONSrO���rS����KeyErrorr�����r���rh���r����r���r���r ����install_setm��s����zRPMTransaction.install_setc�������������� ���C���s\���t���}|�D�]L}|jtjjtjjg�v�r z|�|j��W�q �t yT���t d|���Y�q 0�q |S�r����)rL���r���r^���r���ZBACKWARD_ACTIONSr���r|���rO���rS���r����r����r����r���r���r ���� remove_sety��s����zRPMTransaction.remove_setc�����������������C���s,���dd��|�j�D��}t|�r(td�|d��S�dS�)zj Ensures all the members can be passed to rpm as they are to perform the transaction. c�����������������S���s���g�|�]}|j�d�kr|�qS�)�src)ra���)r9���rS���r���r���r ���r;������r<���z3RPMTransaction._rpm_limitations.<locals>.<listcomp>z+Will not install a source rpm package (%s).r���N)r����r���r���)r���Zsrc_installsr���r���r ����_rpm_limitations���s�����zRPMTransaction._rpm_limitationsc��������������������s�����fdd�|�D��S�)Nc��������������������s���g�|�]}|j���kr|�qS�r����r���)r9���r����r����r���r ���r;������r<���z-RPMTransaction._get_items.<locals>.<listcomp>r���)r���r���r���r����r ���� _get_items���s����zRPMTransaction._get_items)N)NN)N)N)N)NN)N)N)N)r3���r4���r5���r���rB���r���rc���r.���rd���re���rm���rp���rw���ry���rz���r}���rx���r���r����r�����propertyr����r����r����r����r���r���r���r ���r[�������s.��� 2 r[���)Zlibdnf.transactionr���Zdnf.db.historyr^���Zdnf.transactionZdnf.exceptionsZdnf.i18nr���Zdnf.utilr���r�����objectr���r6���rU���r[���r���r���r���r ����<module>���s���3<<