o
    >I¼cý  ã                   @   sÎ   d dl mZmZ d dl mZ d dlZd dlZd dlZd dl	Z	dZ
G dd„ deƒZedkreedƒZee d	d
¡ƒ ee d	d¡ƒ ee dd¡ƒ ee d	dd¡ƒ ee d	dd¡ƒ ee d	dd¡ƒ dS dS )é    )ÚNoOptionErrorÚNoSectionError)ÚConfigParserNz&/etc/update-manager/release-upgrades.dc                   @   s2   e Zd Z		ddd„Zdd„ Zdd„ Zd	d
„ ZdS )ÚDistUpgradeConfigúDistUpgrade.cfgNc                 C   sÞ   t  | ¡ tjg d¢tjdd� ¡ d  ¡ }|| _tj	 
||¡}tj	 |d | ¡r0|d| 7 }g | _|rEt |d ¡D ]}| j |¡ q<|  j|g7  _|d u rSt}|d urgt |d ¡D ]}| j |¡ q^|  | j¡ d S )N)Úlsb_releasez-cz-sT)ÚstdoutÚuniversal_newlinesr   Ú.z/*.cfg)ÚSafeConfigParserÚ__init__Ú
subprocessÚPopenÚPIPEÚcommunicateÚstripÚdatadirÚosÚpathÚjoinÚexistsÚconfig_filesÚglobÚappendÚCONFIG_OVERRIDE_DIRÚread)Úselfr   ÚnameÚoverride_dirÚdefaults_dirÚfrom_releaseÚmaincfgÚcfg© r#   úE/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeConfigParser.pyr   "   s0   

þþþzDistUpgradeConfig.__init__c              	   C   sx   z.t |ƒtkr|  ||¡W S t |ƒtkr|  ||¡W S t |ƒtkr(|  ||¡W S |  ||¡W S  tt	fy;   | Y S w )N)
ÚtypeÚboolÚ
getbooleanÚfloatÚgetfloatÚintÚgetintÚgetr   r   )r   ÚsectionÚoptionÚdefaultr#   r#   r$   ÚgetWithDefault=   s   ÿz DistUpgradeConfig.getWithDefaultc              	   C   sD   z|   ||¡}W n ttfy   g  Y S w dd„ | d¡D ƒ}|S )Nc                 S   ó   g | ]}|  ¡ ‘qS r#   ©r   ©Ú.0Úxr#   r#   r$   Ú
<listcomp>N   ó    z-DistUpgradeConfig.getlist.<locals>.<listcomp>ú,)r,   r   r   Úsplit)r   r-   r.   ÚtmpÚitemsr#   r#   r$   ÚgetlistI   s   ÿzDistUpgradeConfig.getlistc                 C   s–   z|   ||¡}W n ty   g  Y S w tj | j|¡}tj |¡s)t d| ¡ t	|ƒ�}dd„ |D ƒ}W d   ƒ n1 s?w   Y  dd„ |D ƒS )NzgetListFromFile: no '%s' foundc                 S   r1   r#   r2   r3   r#   r#   r$   r6   Z   r7   z5DistUpgradeConfig.getListFromFile.<locals>.<listcomp>c                 S   s"   g | ]}|  d ¡s|dks|‘qS )ú#Ú )Ú
startswith)r4   Úsr#   r#   r$   r6   [   s   " )
r,   r   r   r   r   r   r   ÚloggingÚerrorÚopen)r   r-   r.   ÚfilenameÚpÚfr;   r#   r#   r$   ÚgetListFromFileQ   s   ÿ
ÿz!DistUpgradeConfig.getListFromFile)r   NN)Ú__name__Ú
__module__Ú__qualname__r   r0   r<   rG   r#   r#   r#   r$   r   !   s    
ÿr   Ú__main__r
   ÚDistroÚMetaPkgsÚForcedPurgesÚSourcesÚValidMirrorsÚEnableApportTÚFooÚFalse)Úconfigparserr   r   r   r   r   Úos.pathr   rA   r   r   r   rH   ÚcÚprintr<   rG   r0   Úsetr#   r#   r#   r$   Ú<module>   s"   =ù