ó
Céac           @   sš  y d  d l  m Z Wn! e k
 r7 d  d l m Z n Xd  d l Z d  d l Z d d# d „  ƒ  YZ d d$ d „  ƒ  YZ d d% d „  ƒ  YZ d	 d& d
 „  ƒ  YZ	 d d' d „  ƒ  YZ
 d d( d „  ƒ  YZ d d) d „  ƒ  YZ d d* d „  ƒ  YZ e d k r–e ƒ  Z e j d ƒ Z e j d k r#d GHn  e j d k r:d GHn  e j d d ƒ Z e j d k rcd GHn  e j d k rzd GHn  e j d e ƒ Z e j d k r£d GHn  e j d k rºd GHn  e e ƒ e e ƒ e e ƒ f GHx% e e j d  e j ƒD] Z e GHqóWx‘ e j D]ƒ Z e e ƒ e j j e j f GHe j GHe j GHx" e j D] Z d! e e ƒ f GHqIWx( e j  D] Z! d" e e! ƒ e! j" f GHqnWqWn  d S(+   iÿÿÿÿ(   t   urlopenNt   KernelRoutingEntryc           B   sh   e  Z d  „  Z e d „  ƒ Z e d „  ƒ Z d „  Z d „  Z d „  Z d „  Z	 e
 d „ Z d „  Z RS(	   c         C   s  d j  | j j | j ƒ } t | t ƒ r© | j j j | | ƒ } | } | j j } | d  k rx t
 d j  | ƒ ƒ ‚ n  | | k rœ t
 d j  | ƒ ƒ ‚ n  | | } n  x. t | ƒ D]  } | | d  k r¶ | | =q¶ q¶ W| |  _ | |  _ | |  _ | r| n i  |  _ d  S(   Ns   {}:{}s7   unable to map routing alias {}, no series routing tablesB   unable to map routing alias {}, not listed in series routing table(   t   formatt   seriest   codenamet   namet
   isinstancet   strt   routing_mapt   gett   routing_tablet   Nonet
   ValueErrort   dictt   _kst   _sourcet   _namet   _data(   t   selft   kst   sourcet   dataR   t   tablet   entry(    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   __init__   s&    					c         C   s   |  j  S(   N(   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   )   s    c         C   s   |  j  S(   N(   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   -   s    c         C   s,   t  |  | j ƒ r( t |  ƒ t | ƒ k St S(   N(   R   t	   __class__t   listt   False(   R   t   other(    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   __eq__1   s    c         C   s   |  j  | ƒ S(   N(   R   (   R   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   __ne__6   s    c         C   s   t  |  j j ƒ  ƒ S(   N(   t   iterR   t   items(   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   __iter__9   s    c         C   s   |  j  | S(   N(   R   (   R   t   which(    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   __getitem__<   s    c         C   s9   |  j  j | d  ƒ } | t k s- | d  k r1 | S| d S(   Ni    (   R   R	   R   R   (   R   t   destt   primaryR   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   lookup_destination?   s    c         C   s   t  |  j ƒ S(   N(   R   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   __str__E   s    (   t   __name__t
   __module__R   t   propertyR   R   R   R   R!   R#   R   R&   R'   (    (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR      s   					t   KernelRepoEntryc           B   sY   e  Z d  „  Z e d „  ƒ Z d „  Z d „  Z e d „  ƒ Z e d „  ƒ Z d „  Z	 RS(   c         C   s–   t  | t ƒ rk i | d d 6} t | ƒ d k r? d | d <n# t | ƒ d k rb | d | d <n  | } n  | |  _ | |  _ | r‰ | n i  |  _ d  S(   Ni    t   urli   t   mastert   branchi   (   R   R   t   lenR   t   _ownerR   (   R   R   t   ownerR   t   new_data(    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   J   s    			c         C   s   |  j  S(   N(   R0   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR1   W   s    c         C   s8   t  |  | j ƒ r4 |  j | j k o3 |  j | j k St S(   N(   R   R   R,   R.   R   (   R   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   ]   s    "c         C   s   |  j  | ƒ S(   N(   R   (   R   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   b   s    c         C   s   |  j  d S(   NR,   (   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR,   e   s    c         C   s   |  j  j d d  ƒ S(   NR.   (   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR.   i   s    c         C   s   d j  |  j |  j ƒ S(   Ns   {} {}(   R   R,   R.   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR'   m   s    (
   R(   R)   R   R*   R1   R   R   R,   R.   R'   (    (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR+   I   s   			t   KernelSnapEntryc           B   sø   e  Z d  „  Z d „  Z d „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z	 e d „  ƒ Z
 e d „  ƒ Z e d	 „  ƒ Z e d
 „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z d „  Z d „  Z RS(   c   
      C   s©  | |  _  | |  _ | |  _ | r' | n i  |  _ d |  j k r› d |  j k r› i  } x1 |  j d D]" } |  j j d d ƒ g | | <qb W| |  j d <q› n  d |  j k rì d |  j k rì |  j d t k rÜ d |  j d <qì d |  j d <n  |  j j d d ƒ } t | t ƒ rTg  } x+ d
 D]# }	 | j |	 ƒ |	 | k rPqqW| |  j d <n  d |  j k r¥d |  j k r¥d |  j d k r•t |  j d <q¥t	 |  j d <n  d  S(   Ns
   publish-tot   archest   trackt   latests
   promote-tot   stablet	   candidatet   edget   beta(   R9   s   betaR8   s   stable(
   R   R   R   R   R	   t   TrueR   R   t   appendR   (
   R   R   R   R   R   t
   publish_tot   archt
   promote_tot   expand_promote_tot   risk(    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   r   s4    			 c         C   s8   t  |  | j ƒ r4 |  j | j k o3 |  j | j k St S(   N(   R   R   R   R   R   (   R   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   –   s    "c         C   s   |  j  | ƒ S(   N(   R   (   R   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   ›   s    c         C   s
   |  j  j S(   N(   R   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   ž   s    c         C   s   |  j  S(   N(   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   ¢   s    c         C   s   |  j  S(   N(   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   ¦   s    c         C   s2   |  j  j d d  ƒ } | s d  St |  j |  | ƒ S(   Nt   repo(   R   R	   R   R+   R   (   R   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRB   ª   s    c         C   s   |  j  j d t ƒ S(   NR%   (   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR%   ±   s    c         C   s   |  j  j d t ƒ S(   Nt   gated(   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRC   µ   s    c         C   s   |  j  j d t ƒ S(   NR7   (   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR7   ¹   s    c         C   s   |  j  j d t ƒ S(   Nt   qa(   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRD   ½   s    c         C   s   |  j  j d t ƒ S(   Ns   hw-cert(   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   hw_certÁ   s    c         C   s   |  j  j d d  ƒ S(   NR4   (   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR4   Å   s    c         C   s   |  j  j d d  ƒ S(   NR5   (   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR5   Ê   s    c         C   s   |  j  j d d  ƒ S(   Ns
   publish-to(   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR=   Î   s    c         C   s   |  j  j d d  ƒ S(   Ns
   promote-to(   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR?   Ò   s    c         C   s   | |  j  j d g  ƒ k S(   Ns
   promote-to(   R   R	   (   R   RA   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   promote_to_riskÖ   s    c         C   s   d j  t |  j ƒ |  j ƒ S(   Ns   {} {}(   R   R   R   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR'   Ù   s    (   R(   R)   R   R   R   R*   R   R   R   RB   R%   RC   R7   RD   RE   R4   R5   R=   R?   RF   R'   (    (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR3   q   s$   	$			t   KernelPackageEntryc           B   sw   e  Z d  „  Z d „  Z d „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z	 e d „  ƒ Z
 d „  Z RS(	   c         C   s4   | |  _  | |  _ | |  _ | r' | n i  |  _ d  S(   N(   R   R   R   R   (   R   R   R   R   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   Þ   s    			c         C   s8   t  |  | j ƒ r4 |  j | j k o3 |  j | j k St S(   N(   R   R   R   R   R   (   R   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   ä   s    "c         C   s   |  j  | ƒ S(   N(   R   (   R   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   é   s    c         C   s
   |  j  j S(   N(   R   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   ì   s    c         C   s   |  j  S(   N(   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   ð   s    c         C   s   |  j  S(   N(   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   ô   s    c         C   s   |  j  j d d  ƒ S(   Nt   type(   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRH   ø   s    c         C   s2   |  j  j d d  ƒ } | s d  St |  j |  | ƒ S(   NRB   (   R   R	   R   R+   R   (   R   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRB   ü   s    c         C   s"   d j  t |  j ƒ |  j |  j ƒ S(   Ns   {} {} {}(   R   R   R   R   RH   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR'     s    (   R(   R)   R   R   R   R*   R   R   R   RH   RB   R'   (    (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRG   Ý   s   			t   KernelSourceEntryc           B   sj  e  Z d  „  Z d „  Z d „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z	 e d „  ƒ Z
 e d „  ƒ Z e d	 „  ƒ Z e d
 „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z d „  Z e d „  ƒ Z d „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z d „  Z RS(   c         C   s4   | |  _  | |  _ | |  _ | r' | n i  |  _ d  S(   N(   R   t   _seriesR   R   (   R   R   R   R   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR     s    			c         C   s8   t  |  | j ƒ r4 |  j | j k o3 |  j | j k St S(   N(   R   R   R   R   R   (   R   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR     s    "c         C   s   |  j  | ƒ S(   N(   R   (   R   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR     s    c         C   s   |  j  S(   N(   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR     s    c         C   s   |  j  S(   N(   RJ   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR     s    c         C   sV   d |  j  k r |  j  d S|  j } | d  k	 r6 | j S|  j } | d  k	 rR | j Sd  S(   Nt   versions(   R   t   derived_fromR   RK   t   copy_forward(   R   RL   RM   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRK     s    		c         C   s   |  j  } | s d  S| d S(   Niÿÿÿÿ(   RK   R   (   R   RK   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   version.  s    	c         C   s:   d |  j  k r |  j  d S|  j } | d  k	 r6 | j Sd  S(   Nt   variants(   R   RM   R   RO   (   R   RM   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRO   5  s    	c         C   s   |  j  j d |  j j ƒ S(   Nt   development(   R   R	   R   RP   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRP   @  s    c         C   s   |  j  j d |  j j ƒ S(   Nt	   supported(   R   R	   R   RQ   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRQ   D  s    c         C   s   |  j  j d t ƒ S(   Ns   severe-only(   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   severe_onlyH  s    c         C   s   |  j  j d d  ƒ S(   NR1   (   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR1   L  s    c         C   s   |  j  j d d  ƒ S(   Nt   stakeholder(   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRS   P  s    c         C   sa   g  } |  j  j d ƒ } | r] x< | j ƒ  D]+ \ } } | j t |  j |  | | ƒ ƒ q+ Wn  | S(   Nt   packages(   R   R	   R    R<   RG   R   (   R   t   resultRT   t   package_keyt   package(    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRT   T  s    &c         C   sC   |  j  j d ƒ } | s% | | k r) d  St |  j |  | | | ƒ S(   NRT   (   R   R	   R   RG   R   (   R   RV   RT   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   lookup_package^  s    c         C   sa   g  } |  j  j d ƒ } | r] x< | j ƒ  D]+ \ } } | j t |  j |  | | ƒ ƒ q+ Wn  | S(   Nt   snaps(   R   R	   R    R<   R3   R   (   R   RU   RY   t   snap_keyt   snap(    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRY   d  s    &c         C   sC   |  j  j d ƒ } | s% | | k r) d  St |  j |  | | | ƒ S(   NRY   (   R   R	   R   R3   R   (   R   RZ   RY   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   lookup_snapn  s    c         C   sK   d |  j  k r d  S|  j  d \ } } |  j j | ƒ } | j | ƒ } | S(   Ns   derived-from(   R   R   R   t   lookup_seriest   lookup_source(   R   t
   series_keyt
   source_keyR   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRL   t  s    c      	   C   s  g  } |  j  j d ƒ d  k	 rý |  j  d j d ƒ d  k	 rý |  j  d j d t ƒ } | s˜ |  j  j d ƒ } | d  k r} i  n | } | j d t ƒ } n  xb |  j  d d j ƒ  D]F } |  j  d d | } | s× q° n  | j t | | | d |  ƒƒ q° Wn  | S(   Nt   testingt   flavourss   kernel-testingt   swmR   (   R   R	   R   R   t   keysR<   t   KernelSourceTestingFlavourEntry(   R   t   retvalt   kernel_testingt
   swm_configt   flavourt   fdata(    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   testable_flavours€  s    &c         C   s.   |  j  j d g  ƒ } | d  k r* g  } n  | S(   Ns   invalid-tasks(   R   R	   R   (   R   Rf   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   invalid_tasks–  s    	c         C   s•   d |  j  k r d  S|  j  d t k r* d  S|  j  d t k r] |  j } | d  k rV t S|  j S|  j  d \ } } |  j j | ƒ } | j | ƒ } | S(   Ns   copy-forward(   R   R   R   R;   RL   R   R]   R^   (   R   RL   R_   R`   R   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRM     s    	c         C   s   |  j  j d t ƒ S(   Nt   backport(   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRm   ²  s    c         C   sh   d } |  j  j r d } n  |  j  j r0 d } n  |  j j d | ƒ } | d  k rU | St |  j |  | ƒ S(   Nt   defaultt   develt   esmt   routing(   R   RP   Rp   R   R	   R   R   R   (   R   Rn   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRq   ¶  s    		c         C   s   |  j  j d ƒ S(   NRc   (   R   R	   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   swm_dataÂ  s    c         C   s   |  j  j d t ƒ S(   Nt   private(   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRs   Æ  s    c         C   s   d j  |  j j |  j ƒ S(   Ns   {} {}(   R   R   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR'   Ê  s    (   R(   R)   R   R   R   R*   R   R   RK   RN   RO   RP   RQ   RR   R1   RS   RT   RX   RY   R\   RL   Rk   Rl   RM   Rm   Rq   Rr   Rs   R'   (    (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRI     s4   			
	
	Re   c           B   sP   e  Z d d  „ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z RS(   c         C   sÜ   | |  _  | |  _ | |  _ |  j j d d  ƒ |  _ |  j d  k	 rK |  j n g  |  _ |  j j d d  ƒ |  _ |  j d  k	 r„ |  j n g  |  _ |  j j d d  ƒ |  _ |  j d  k rØ | rØ d j |  j j	 | ƒ |  _ n  d  S(   NR4   t   cloudss   meta-pkgs   kernel-testing--{}--full--{}(
   R   R   R   R	   R   t   _archest   _cloudst	   _meta_pkgR   R   (   R   R   R   Rg   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   Î  s    			!!c         C   s   |  j  S(   N(   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   Ü  s    c         C   s   |  j  S(   N(   Ru   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR4   à  s    c         C   s   |  j  S(   N(   Rv   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRt   ä  s    c         C   s   |  j  S(   N(   Rw   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   meta_pkgè  s    N(	   R(   R)   R   R   R*   R   R4   Rt   Rx   (    (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRe   Í  s
   t   KernelSeriesEntryc           B   sì   e  Z d d  „ Z d „  Z d „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z	 d „  Z
 e
 Z e d „  ƒ Z e d „  ƒ Z e d	 „  ƒ Z e d
 „  ƒ Z e d „  ƒ Z d „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z d „  Z RS(   c         C   s]   | |  _  | |  _ i  |  _ | d  k	 r: |  j j | ƒ n  | d  k	 rY |  j j | ƒ n  d  S(   N(   R   R   R   R   t   update(   R   R   R   R   t   defaults(    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   í  s    			c         C   s&   t  |  | j ƒ r" |  j | j k St S(   N(   R   R   R   R   (   R   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   ö  s    c         C   s   |  j  | ƒ S(   N(   R   (   R   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   û  s    c         C   s   |  j  S(   N(   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   þ  s    c         C   s   |  j  j d d  ƒ S(   NR   (   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR     s    c         C   s-   d |  j  k r) |  j  d t k	 r) t Sn  t S(   Nt   opening(   R   R   R;   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR|     s    c         G   sŠ   d |  j  k r t S|  j  d } | d  k r0 t S| t t f k rG | Sx< | D]4 } | j | t ƒ } | d  k s~ | t k rN t SqN Wt S(   NR|   (   R   R;   R   R   R	   (   R   t   flagst   allowt   flagt
   flag_allow(    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   opening_ready  s    c         C   s   |  j  j d t ƒ S(   NRP   (   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRP     s    c         C   s   |  j  j d t ƒ S(   NRQ   (   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRQ      s    c         C   s   |  j  j d t ƒ S(   Nt   lts(   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR‚   $  s    c         C   s   |  j  j d t ƒ S(   NRp   (   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRp   (  s    c         C   s   |  j  j d t ƒ S(   Ns   old-releases(   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   old_releases,  s    c         C   s   d j  |  j |  j ƒ S(   Ns   {} ({})(   R   R   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR'   0  s    c         C   sa   g  } |  j  j d ƒ } | r] x< | j ƒ  D]+ \ } } | j t |  j |  | | ƒ ƒ q+ Wn  | S(   Nt   sources(   R   R	   R    R<   RI   R   (   R   RU   R„   R`   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR„   3  s    	c         C   s   |  j  j d d  ƒ S(   Ns   routing-table(   R   R	   R   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR
   =  s    c         C   s   |  j  j d i  ƒ S(   Ns   routing-map(   R   R	   (   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   A  s    c         C   sC   |  j  j d ƒ } | s% | | k r) d  St |  j |  | | | ƒ S(   NR„   (   R   R	   R   RI   R   (   R   R`   R„   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR^   E  s    N(   R(   R)   R   R   R   R   R*   R   R   R|   R   t   opening_allowRP   RQ   R‚   Rp   Rƒ   R'   R„   R
   R   R^   (    (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyRy   ì  s$   					
t   KernelSeriesc           B   s¨   e  Z d  Z d e j j e j j e j j e ƒ d d d ƒ ƒ Z	 i  Z
 e d „  ƒ Z d d e j d e ƒ d „ Z e d „  ƒ Z e d	 „  ƒ Z d d e d
 „ Z RS(   sZ   https://git.launchpad.net/~canonical-kernel/+git/kteam-tools/plain/info/kernel-series.yamls   file://s   ..t   infos   kernel-series.yamlc         C   sc   | |  j  k rX t | ƒ } | j ƒ  } t | t ƒ sH | j d ƒ } n  | |  j  | <n  |  j  | S(   Ns   utf-8(   t	   _data_txtR    t   readR   R   t   decode(   t   clsR,   t   responseR   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   __load_onceW  s    t   USE_LOCAL_KERNEL_SERIES_YAMLc         C   s9  | s | rQ | r- t  | ƒ } | j ƒ  } n  t | t ƒ sr | j d ƒ } qr n! |  j | rf |  j n |  j ƒ } t j	 | ƒ |  _
 d  |  _ i  |  _ xg |  j
 j ƒ  D]V \ } } | s¾ q¦ n  | j d t ƒ rÜ | |  _ n  d | k r¦ | |  j | d <q¦ q¦ Wi  |  _ d |  j
 k r5|  j
 d |  _ |  j
 d =n  d  S(   Ns   utf-8RP   R   R{   (   R    R‰   R   R   RŠ   t   _KernelSeries__load_oncet
   _url_localt   _urlt   yamlt	   safe_loadR   R   t   _development_seriest   _codename_to_seriesR    R	   R   t   _defaults_series(   R   R,   R   t	   use_localRŒ   R_   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   a  s*    !			c         C   s)   g  |  j  j d ƒ D] } t | ƒ ^ q S(   Nt   .(   R   t   splitt   int(   R   t   x(    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   key_series_name|  s    c         C   s;   g  |  j  j ƒ  D]' \ } } t |  | | d |  j ƒ^ q S(   NR{   (   R   R    Ry   R–   (   R   R_   R   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR   €  s    c         C   s³   | r$ | r$ | r$ t  d ƒ ‚ n  | rT | rT | |  j k rD d  S|  j | } n  | rz | rz |  j sn d  S|  j } n  | r“ | |  j k r“ d  St |  | |  j | d |  j ƒS(   Ns$   series/codename/development requiredR{   (   R   R•   R   R”   R   Ry   R–   (   R   R   R   RP   (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR]   †  s    	N(   R(   R)   R‘   t   ost   patht   realpatht   joint   dirnamet   __file__R   Rˆ   t   classmethodR   R   t   getenvR   R   t   staticmethodRœ   R*   R   R]   (    (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyR†   N  s   $
t   __main__s   16.04s   series.name != 16.04t   xenials   series.codename != xenialR   s   series2.name != 16.04s   series2.codename != xenialRP   s   18.04s   series3.name != 18.04t   bionics   series3.codename != bionict   keyt   PACKAGEt   SNAP(    (    (    (    (    (    (    (    (#   t   urllib.requestR    t   ImportErrort   urllib2R   R’   R   R+   R3   RG   RI   Re   Ry   R†   R(   t   dbR]   R   R   R   t   series2R;   t   series3R   t   sortedRœ   R„   R   RL   RK   RT   RW   RY   R[   R4   (    (    (    s7   /srv/kernel/kteam-tools/adt-matrix/ktl/kernel_series.pyt   <module>   sR   <(l*ÆbI	 	