JFIF$        dd7 

Viewing File: /usr/lib/python3.9/site-packages/up2date_client/__pycache__/capabilities.cpython-39.opt-1.pyc

a

c8h�	@s�ddlmZddlmZzddlZWney>ddlZYn0ddlZejddd�Ze	ed�sheje_
ej
Zdd	idd
idd
idd
idd
idd
idd
idd
id�Zdd
�Z
Gdd�dej�ZdS)�)�config)�
up2dateErrorsNzrhn-client-toolsT)�fallback�ugettext�versionZ21�1)�caneatCheese�supportsAutoUp2dateOption�registration.finish_message� xmlrpc.packages.extended_profile�registration.delta_packages� registration.update_contact_info�$registration.extended_update_support�registration.smbiosc		Cs�d}|�d�}g}|D]�}zdd�|�dd�D�\}}WntyNYqYn0|�dd�\}}|ddkrttd	�|dd�}||d
�}|�||f�q|S)N�,cSsg|]}|���qS�)�strip)�.0�irr�?/usr/lib/python3.9/site-packages/up2date_client/capabilities.py�
<listcomp>#�zparseCap.<locals>.<listcomp>�=��(����)z2something broke in parsing the capabilited headers)r�value)�split�
ValueError�print�append)	Z	capstringrZcaps�capslist�capZkey_version�keyr�datarrr�parseCaps


r&c@sNeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	ddd�Z
dS)�CapabilitiescCs&tj�|�i|_t|_t��|_dS�N)�UserDict�__init__�missingCaps�
neededCapsrZinitUp2dateConfig�cfg)�selfrrrr*:szCapabilities.__init__cCsB|��D]4\}}|��dkrt|�}|D]\}}||j|<q(qdS)Nzx-rhn-server-capability)�items�lowerr&r%)r.Zheadersr$�valr"r#r%rrr�populateCs
zCapabilities.populatecCsx|�d�}|dkrF|�d�}|d}|d}tt|�t|�d�}|S|�d�}t|�dkrndd�|D�}|St|�gS)N�-rr�:cSsg|]}t|��qSr)�int)r�arrrrWrz0Capabilities.parseCapVersion.<locals>.<listcomp>)�findr�ranger5�len)r.Z
versionString�index�rng�start�endZversionsZversrrr�parseCapVersionKs


zCapabilities.parseCapVersioncCsZ||jvr"td�|}d|j|<n4|j|}t|d�|�|d�vrV|j||j|<dS)NzXThis client requires the server to support %s, which the current server does not supportr)r%�_r+r5r>r,)r.r#ZcapvalueZerrstrr%rrr�validateCap\s
�
zCapabilities.validateCapcCs.|j��D]}|�||j|�q
|��dSr()r,�keysr@�workaroundMissingCaps)r.r$rrr�validatehszCapabilities.validatecCs,||jvrd|j|<|j|=n
d|j|<dS)Nrr)�tmpCapsr-)r.r$Z
configItemrrr�	setConfigns


zCapabilities.setConfigc	CsH|j|_d}||jvr |j|=ndddddddd	�}|��D]}|�|||�q<g}g}t|j�r�|jD]4}|j|}|dkr�|�||f�qj|�||f�qjd
}g}t|�r�|D]@\}}|d||d|j|df}|�|||j|d
��q�t|��r.|D](\}}|d|}|�||d
d
���qt|��rDt�||��dS)Nrr	ZsupportsFinishMessageZsupportsUpdateContactInfoZsupportsDeltaPackagesZsupportsExtendedPackageProfileZsupportsEUSZsupportsSMBIOS)r	r
r
rrrr�z3Needs %s of version: %s but server has version: %s
r)ZcapName�capInfoZ
serverVersionz5Needs %s but server does not support that capability
)	r+rDrArEr9r!r%rZServerCapabilityError)	r.r$Z
capsConfigMapr+ZwrongVersionCapsr#rGZ	errStringZ	errorListrrrrBusJ

	�


�

z"Capabilities.workaroundMissingCapsNcCs:||jvrdS|r6|j|}t|�|�|d�vr6dSdS)a�Checks if the server supports a capability and optionally a version.
        Returns True or False.

        This complements the neededCaps mechanism provided by this module.
        Using hasCapability makes it easier to do something only if the server
        supports it or to put workaround code in the user of this class. The
        neededCaps mechanism makes it easier to put workaround code in this
        module, which makes sense if it is to be shared.

        'capability' should be a string such as 'registration.foobar'. It can
        be a capability in 'neededCaps' above or one that isn't there. 'version'
        can be a string (where isdigit() is True) or an int.

        FrT)r%r5r>)r.Z
capabilityrr%rrr�
hasCapability�s

zCapabilities.hasCapability)N)�__name__�
__module__�__qualname__r*r2r>r@rCrErBrHrrrrr'9s	<r')Zup2date_clientrrr)�ImportError�collections�gettext�translation�t�hasattrrr?r,r&r'rrrr�<module>s*
�	
Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg