o
    >Ic                     @   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"   =