+
    <i%R                     .   R t ^ RIt^ RIt^ RIt^ RItR R ltR R lt ! R R]4      t ! R R	4      t	]P                  R
,          t]P                  R,          t]P                  ]]3,          tR R lt ! R R4      t ! R R]4      t ! R R]4      tR# )z>provides information about Ubuntu's and Debian's distributionsNc                D    V ^8  d   QhR\         R\        P                  /# )   stringreturn)strdatetimedate)formats   "-/usr/lib/python3/dist-packages/distro_info.py__annotate__r      s     5 5 5 5    c                   V P                  R4       Uu. uF  p\        V4      NK  	  pp\        V4      ^8X  d   Vw  r4p\        P                  ! W4V4      # \        V4      ^8X  d\   Vw  r4V^8X  d   \        P                  ! W4^4      # \        P                  ! W4^,           ^4      \        P
                  ! ^4      ,
          # \        R4      hu upi )z9Convert a date string in ISO 8601 into a datetime object.-zDate not in ISO 8601 format.)splitintlenr   r   	timedelta
ValueError)r   xpartsyearmonthdays   &     r
   convert_dater      s    #\\#./.SV.E/
5zQ"c}}T#..
5zQB;==b11}}T19a083E3Ea3HHH
3
44 0s   Cc                $    V ^8  d   QhR\         /# r   r   r   )r	   s   "r
   r   r   %   s     $ $s $r   c                     R# )z4Get the data directory based on the module location.z/usr/share/distro-info r   r   r
   _get_data_dirr   %   s    #r   c                   B   a a ] tR t^*t oRtV3R lV 3R lltRtVtV ;t# )DistroDataOutdatedzDistribution data outdated.c                   < V ^8  d   QhRR/# r   r   Nr   )r	   __classdict__s   "r
   r   DistroDataOutdated.__annotate__-   s     
 
$ 
r   c                &   < \         SV `  R 4       R# )zDistribution data outdated. Please check for an update for distro-info-data. See /usr/share/doc/distro-info-data/README.Debian for details.Nsuper__init__self	__class__s   &r
   r)   DistroDataOutdated.__init__-   s    M	
r   r   )	__name__
__module____qualname____firstlineno____doc__r)   __static_attributes____classdictcell____classcell__r,   r$   s   @@r
   r!   r!   *   s     %
 
 
r   r!   c                   L   a  ] tR t^5t o RtRV 3R lR lltV 3R lR ltRtV tR# )	DistroReleasez"Represents a distributions releaseNc                  < V ^8  d   QhRS[ RS[ RS[ RS[P                  RS[P                  S[P                  ,          RS[P                  S[P                  ,          RS[P                  S[P                  ,          RS[P                  S[P                  ,          R	S[P                  S[P                  ,          R
S[P                  S[P                  ,          RR/# )r   versioncodenameseriescreatedreleaseeoleol_esmeol_ltseol_elts
eol_serverr   N)r   r   r   typingOptional)r	   r$   s   "r
   r   DistroRelease.__annotate__9   s     % %% % 	%
 % /% __X]]+% /% /% //(--0% OOHMM2% 
%r   c                ~    Wn         W n        W0n        W@n        WPn        W`n        Wn        Wn        Wpn        Wn	        R # N)
r:   r;   r<   r=   r>   r?   rA   rB   r@   rC   )r+   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   s   &&&&&&&&&&&r
   r)   DistroRelease.__init__9   s6       $r   c                :   < V ^8  d   QhRS[ P                  RS[/# r   r   r   )r   r   bool)r	   r$   s   "r
   r   rF   Q   s     
 
 
4 
r   c                    WP                   8  ;'       dQ    V P                  RJ ;'       g;    WP                  8*  ;'       g%    V P                  RJ;'       d    WP                  8*  # )z:Check whether this release is supported on the given date.N)r=   r?   rC   )r+   r   s   &&r
   is_supportedDistroRelease.is_supportedQ   sd    ||# 
 
HH I IxxI It+GG0G	
r   )
r;   r=   r?   rB   r@   rA   rC   r>   r<   r:   )NNNNNN)	r.   r/   r0   r1   r2   r)   rN   r3   r4   r$   s   @r
   r8   r8   5   s     ,% %0
 
r   r8   objectc                    V ^8  d   QhR\         \        \        3,          R\        R\        P                  \        P
                  ,          /# )r   rowcolumnr   )dictr   rD   rE   r   r   )r	   s   "r
   r   r   _   s6     % %4S> %3 %6??8==3Q %r   c                 N    V P                  V4      pV'       g   R # \        V4      # rH   )getr   )rS   rT   date_strings   && r
   	_get_daterY   _   s     ''&/K$$r   c                     a  ] tR t^ft o RtV 3R lR lt]V 3R lR l4       t]P                  V 3R lR l4       t
]P                  R:V 3R lR	 ll4       t
R:V 3R
 lR llt
V 3R lR ltR;V 3R lR lltR<V 3R lR llt]P                  R<V 3R lR ll4       t]P                  R=V 3R lR ll4       tR=V 3R lR llt]P                  V 3R lR l4       t]P                  V 3R lR l4       tV 3R lR lt]P                  V 3R lR  l4       t]P                  V 3R! lR" l4       tV 3R# lR$ lt]P                  R<V 3R% lR& ll4       t]P                  R=V 3R' lR( ll4       tR=V 3R) lR* llt]P                  R<V 3R+ lR, ll4       t]P                  R=V 3R- lR. ll4       tR=V 3R/ lR0 lltV 3R1 lR2 lt]P                  R<V 3R3 lR4 ll4       t]P                  R=V 3R5 lR6 ll4       tR=V 3R7 lR8 lltR9tV tR# )>
DistroInfozrBase class for distribution information.
Use DebianDistroInfo or UbuntuDistroInfo instead of using this directly.
c                $   < V ^8  d   QhRS[ RR/# )r   distror   Nr   )r	   r$   s   "r
   r   DistroInfo.__annotate__k   s     / /s /t /r   c                D   Wn         \        P                  P                  \	        4       VP                  4       R ,           4      p\        VRR7      ;_uu_ 4       p\        P                  ! V4      p. V n	        V F  p\        VR,          VR,          VR,          \        VR,          4      \        VR4      \        VR4      \        VR	4      \        VR
4      \        VR4      \        VR4      4
      pV P                  P                  V4       K  	  RRR4       \        P                  P                  R4      pVe0   \         P"                  P%                  \'        V4      4      V n        R# \         P"                  P+                  4       V n        R#   + '       g   i     L; i)z.csvzutf-8)encodingr:   r;   r<   r=   r>   r?   zeol-esmzeol-ltszeol-eltsz
eol-serverNSOURCE_DATE_EPOCH)_distroospathjoinr   loweropencsv
DictReader	_releasesr8   r   rY   appendenvironrW   r   r   fromtimestampr   _datetoday)r+   r]   filenamecsvfile
csv_readerrS   r>   source_date_epochs   &&      r
   r)   DistroInfo.__init__k   s+   77<<&1HI(W--0JDN!'	N
OM Y0c9-c5)c9-c9-c:.c<0 %%g. " ." JJNN+>?(!44S9J5KLDJ!,,.DJ+ .-s   B7FF	c                0   < V ^8  d   QhRS[ S[,          /# r   )listr   )r	   r$   s   "r
   r   r^      s     2 2T#Y 2r   c                V    V P                    Uu. uF  qP                  NK  	  up# u upi )z*List codenames of all known distributions.)rj   r<   )r+   r   s   & r
   allDistroInfo.all   s"     #'..1.Q.111s   &c                6   < V ^8  d   QhRS[ RS[S[,          /# r   resultr   )_ObjectResultrv   r8   )r	   r$   s   "r
   r   r^      s    HHmH]0CHr   c                    R # rH   r   r+   r|   s   &&r
   get_allDistroInfo.get_all   s    EHr   c                6   < V ^8  d   QhRS[ RS[S[,          /# r{   )_NonObjectResultrv   r   )r	   r$   s   "r
   r   r^      s    NN.NS	Nr   c                    R # rH   r   r   s   &&r
   r   r      s    KNr   c                p   < V ^8  d   QhRS[ RS[P                  S[S[,          S[S[,          3,          /# r{   )
_AnyResultrD   Unionrv   r8   r   )r	   r$   s   "r
   r   r^      s4     9 9 9	d=)494	59r   c                8    V P                  WP                  4      # )zList all known distributions.)_format_listrj   r   s   &&r
   r   r      s       88r   c                J   < V ^8  d   QhRS[ P                  RS[S[,          /# rK   )r   r   rv   r8   )r	   r$   s   "r
   r   r^      s(     @ @8== @T--@ @r   c                h    V P                    Uu. uF  q!VP                  8  g   K  VNK  	  up# u upi )z?Return all distributions that were available on the given date.)rj   r=   )r+   r   r   s   && r
   _availDistroInfo._avail   s)    >>?>aQYY->>???s   //Nc                   < V ^8  d   QhRS[ RS[P                  S[P                  ,          RS[P                  S[ ,          RS[P
                  S[S[ R3,          /# r   r>   r   defaultr   Nr   rD   rE   r   r   r   r8   )r	   r$   s   "r
   r   r^      sY       oohmm, %	
 
mS$.	/r   c                    V# )z3Map codename aliases to the codename they describe.r   r+   r>   r   r   s   &&&&r
   r;   DistroInfo.codename   s	     r   c                t   < V ^8  d   QhRS[ RS[P                  S[ ,          RS[P                  S[ ,          /# )r   namer   r   )r   rD   rE   )r	   r$   s   "r
   r   r^      s5      C &//#*> &//Z]J^ r   c                    V P                    F-  pWP                  VP                  39   g   K!  VP                  u # 	  V# )z!Map codename or series to version)rj   r;   r<   r:   )r+   r   r   r>   s   &&& r
   r:   DistroInfo.version   s6    ~~G(('..99& & r   c                d   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[/# r   r   r|   r   rD   rE   r   r   r}   r8   )r	   r$   s   "r
   r   r^      2      OOHMM2FS	r   c                   R # rH   r   r+   r   r|   s   &&$r
   develDistroInfo.devel        r   c                d   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[/# r   rD   rE   r   r   r   r   )r	   r$   s   "r
   r   r^      2      OOHMM2CS	r   c                    R # rH   r   r   s   &&&r
   r   r           r   c                   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[ P
                  S[S[3,          /# r   rD   rE   r   r   r   r   r8   r   )r	   r$   s   "r
   r   r^      @     1 1OOHMM21CM1	mS(	)1r   c                @   Vf   V P                   pV P                  V4       Uu. uFE  pVP                  e3   WP                  8  g   K#  VP                  e   WP                  8:  g   KC  VNKG  	  ppV'       g   \	        4       hV P                  W$R,          4      # u upi )<Get latest development distribution based on the given date.rn   r   r>   r?   r!   _formatr+   r   r|   r   distross   &&&  r
   r   r      s     <::D [[&
&yy TII%5 ;<55=DTYTYM A& 	 

 $&&||FBK00
s    B	B)Bc                ,   < V ^8  d   QhRS[ RS[RS[/# r   format_stringr>   r   )r}   r8   )r	   r$   s   "r
   r   r^      s    aa]a]a}ar   c                    R # rH   r   r+   r   r>   s   &&&r
   r   DistroInfo._format   s    ^ar   c                ,   < V ^8  d   QhRS[ RS[RS[/# r   )r   r8   r   )r	   r$   s   "r
   r   r^      s    ZZ%5ZZRUZr   c                    R # rH   r   r   s   &&&r
   r   r      s    WZr   c                V   < V ^8  d   QhRS[ RS[RS[P                  S[S[3,          /# r   )r   r8   rD   r   r   )r	   r$   s   "r
   r   r^      s3     
 
'
2?
	mS(	)
r   c                &   VR8X  d   V# VR8X  d   VP                   # VR8X  dD   V P                  R,           VP                  ,           R,           VP                  ,           R,           # VR8X  d   VP                  # \	        RV,           R	,           4      h)
z"Format a given distribution entry.rQ   r;   fullname z ""r>   zQOnly codename, fullname, object, and release are allowed result values, but not 'z'.)r<   rb   r:   r;   r   r   s   &&&r
   r   r      s     H$NJ&>>!J&<<#%7$>AQAQQTWWWI%??"')679=>
 	
r   c                `   < V ^8  d   QhRS[ RS[P                  S[,          RS[S[,          /# r   r   releasesr   )r}   rD   Sequencer8   rv   )r	   r$   s   "r
   r   r^      s3     " "*"6<oom6T"	m	"r   c                    R # rH   r   r+   r   r   s   &&&r
   r   DistroInfo._format_list        "r   c                `   < V ^8  d   QhRS[ RS[P                  S[,          RS[S[,          /# r   )r   rD   r   r8   rv   r   )r	   r$   s   "r
   r   r^      s2      -9?9W	cr   c                    R # rH   r   r   s   &&&r
   r   r           r   c          	         < V ^8  d   QhRS[ RS[P                  S[,          RS[P                  S[S[,          S[S[,          3,          /# r   )r   rD   r   r8   r   rv   r   )r	   r$   s   "r
   r   r^      sE     	/ 	/'	/39??=3Q	/	d=)494	5	/r   c                    V Uu. uF  q0P                  W4      NK  	  ppVR8X  d'   \        P                  ! \        \        ,          V4      # \        P                  ! \        \
        ,          V4      # u upi )z*Format a sequence of distribution entries.rQ   )r   rD   castrv   r8   r   )r+   r   r   r   r   s   &&&  r
   r   r      sd    
 5=F
4<qLL*H 	 F
 H$;;tM2G<<{{49g..F
s   A3c                d   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[/# r   r   )r	   r$   s   "r
   r   r^      r   r   c                   R # rH   r   r   s   &&$r
   stableDistroInfo.stable   r   r   c                d   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[/# r   r   )r	   r$   s   "r
   r   r^      r   r   c                    R # rH   r   r   s   &&&r
   r   r      r   r   c                   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[ P
                  S[S[3,          /# r   r   )r	   r$   s   "r
   r   r^      r   r   c                D   Vf   V P                   pV P                  V4       Uu. uFG  pVP                  f   K  WP                  8  g   K%  VP                  e   WP                  8:  g   KE  VNKI  	  ppV'       g   \	        4       hV P                  W$R,          4      # u upi )z7Get latest stable distribution based on the given date.r   r   r   s   &&&  r
   r   r      s     <::D [[&
&yy )-): @AQUY^Y^Q^ A& 	 

 $&&||FBK00
s   BBB+Bc                t   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[S[,          /# r   rD   rE   r   r   r}   rv   r8   )r	   r$   s   "r
   r   r^     7     " "OOHMM2"FS"	m	"r   c                   R # rH   r   r   s   &&$r
   	supportedDistroInfo.supported
  r   r   c                t   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[S[,          /# r   rD   rE   r   r   r   rv   r   )r	   r$   s   "r
   r   r^     6      OOHMM2CS	cr   c                    R # rH   r   r   s   &&&r
   r   r     r   r   c          	         < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[ P
                  S[S[,          S[S[,          3,          /# r   	rD   rE   r   r   r   r   rv   r8   r   )r	   r$   s   "r
   r   r^     sI     $ $OOHMM2$CM$	d=)494	5$r   c                    \        4       h)z@Get list of all supported distributions based on the given date.)NotImplementedErrorr   s   &&&r
   r   r     s     "##r   c                &   < V ^8  d   QhRS[ RS[/# r   r;   r   r   rL   )r	   r$   s   "r
   r   r^     s     $ $c $d $r   c                    WP                   9   # )%Check if the given codename is known.)rx   r+   r;   s   &&r
   validDistroInfo.valid  s    88##r   c                t   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[S[,          /# r   r   )r	   r$   s   "r
   r   r^     r   r   c                   R # rH   r   r   s   &&$r
   unsupportedDistroInfo.unsupported  r   r   c                t   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[S[,          /# r   r   )r	   r$   s   "r
   r   r^   $  r   r   c                    R # rH   r   r   s   &&&r
   r   r   #  r   r   c          	         < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[ P
                  S[S[,          S[S[,          3,          /# r   r   )r	   r$   s   "r
   r   r^   (  sI     	
 	
OOHMM2	
CM	
	d=)494	5	
r   c                    Vf   V P                   pV P                  V4      pT P                  Y P                  V4       Uu. uF  qDP                  V9  g   K  VNK  	  up4      # u upi )zBGet list of all unsupported distributions based on the given date.)rn   r   r   r   r<   )r+   r   r|   r   r   s   &&&  r
   r   r   (  s^     <::DNN4(	  D 1O 11XXY5NQQ 1O
 	
Os    A$
A$
)rn   rb   rj   )r;   NNrH   Nr;   )r.   r/   r0   r1   r2   r)   propertyrx   rD   overloadr   r   r;   r:   r   r   r   r   r   r   r   r3   r4   rP   s   @r
   r[   r[   f   s    / /4 2 2 __H H__NN N9 9@ @   __   __  1 1 __a a__Z Z
 
$ __" " __ 	/ 	/ __   __  1 1 __" " " __  $ $$ $ __" " " __  	
 	
 	
r   r[   c                   ^  a a ] tR tRt oRtV3R lV 3R lltR.V3R lR llt]P                  R/V3R lR ll4       t	]P                  R0V3R	 lR
 ll4       t	R0V3R lR llt	]P                  R/V3R lR ll4       t
]P                  R0V3R lR ll4       t
R0V3R lR llt
]P                  R/V3R lR ll4       t]P                  R0V3R lR ll4       tR0V3R lR llt]P                  R/V3R lR ll4       t]P                  R0V3R lR ll4       tR0V3R lR llt]P                  R/V3R lR  ll4       t]P                  R0V3R! lR" ll4       tR0V3R# lR$ llt]P                  R/V3R% lR& ll4       t]P                  R0V3R' lR( ll4       tR0V3R) lR* lltV3R+ lR, ltR-tVtV ;t# )1DebianDistroInfoi4  z1provides information about Debian's distributionsc                   < V ^8  d   QhRR/# r#   r   )r	   r$   s   "r
   r   DebianDistroInfo.__annotate__7       # #$ #r   c                &   < \         SV `  R 4       R# )DebianNr'   r*   s   &r
   r)   DebianDistroInfo.__init__7      "r   c                   < V ^8  d   QhRS[ RS[P                  S[P                  ,          RS[P                  S[ ,          RS[P
                  S[S[ R3,          /# r   r   )r	   r$   s   "r
   r   r   :  sY       oohmm, %	
 
mS$.	/r   c                    VR8X  d   V P                  V4      # VR8X  d   V P                  V4      # VR8X  d   V P                  V4      # VR8X  d   V P                  V4      # V# )z3Map 'unstable', 'testing', etc. to their codenames.unstabletestingr   	oldstable)r   r  r   oldr   s   &&&&r
   r;   DebianDistroInfo.codename:  sd     j ::d##i<<%%h;;t$$k!88D>!r   c                d   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[/# r   r   )r	   r$   s   "r
   r   r   L  r   r   c                   R # rH   r   r   s   &&$r
   r   DebianDistroInfo.develK  r   r   c                d   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[/# r   r   )r	   r$   s   "r
   r   r   S  r   r   c                    R # rH   r   r   s   &&&r
   r   r  P  s    
 r   c                   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[ P
                  S[S[3,          /# r   r   )r	   r$   s   "r
   r   r   Y  r   r   c                P   Vf   V P                   pV P                  V4       Uu. uFE  pVP                  e3   WP                  8  g   K#  VP                  e   WP                  8:  g   KC  VNKG  	  pp\	        V4      ^8  d   \        4       hV P                  W$R,          4      # u upi )r   )rn   r   r>   r?   r   r!   r   r   s   &&&  r
   r   r  Y  s     <::D [[&
&yy TII%5 ;<55=DTYTYM A& 	 

 w<!$&&||FBK00
s    B#	B#)B#c                d   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[/# r   r   )r	   r$   s   "r
   r   r   i  r   r   c                   R # rH   r   r   s   &&$r
   r  DebianDistroInfo.oldh  r   r   c                d   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[/# r   r   )r	   r$   s   "r
   r   r   n  r   r   c                    R # rH   r   r   s   &&&r
   r  r  m  r   r   c                   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[ P
                  S[S[3,          /# r   r   )r	   r$   s   "r
   r   r   r  s@     	1 	1OOHMM2	1CM	1	mS(	)	1r   c                   Vf   V P                   pV P                  V4       Uu. uF&  q3P                  f   K  WP                  8  g   K$  VNK(  	  pp\        V4      ^8  d   \	        4       hV P                  W$R,          4      # u upi )z=Get old (stable) Debian distribution based on the given date.r  )rn   r   r>   r   r!   r   r   s   &&&  r
   r  r  r  sr     <::D"kk$/_/991TU^U^M^11/_w<!$&&||FBK00 `s   BB
Bc                t   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[S[,          /# r   r   )r	   r$   s   "r
   r   r   ~  r   r   c                   R # rH   r   r   s   &&$r
   r   DebianDistroInfo.supported}  r   r   c                t   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[S[,          /# r   r   )r	   r$   s   "r
   r   r     r   r   c                    R # rH   r   r   s   &&&r
   r   r        
 r   c          	         < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[ P
                  S[S[,          S[S[,          3,          /# r   r   )r	   r$   s   "r
   r   r     I     2 2OOHMM22CM2	d=)494	52r   c                    Vf   V P                   pV P                  V4       Uu. uF$  q3P                  e   WP                  8:  g   K"  VNK&  	  ppV P                  W$4      # u upi )zGGet list of all supported Debian distributions based on the given
date.)rn   r   r?   r   r   s   &&&  r
   r   r    sX    
 <::D"kk$/R/55=DEEM11/R  11 Ss   A!A!c                t   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[S[,          /# r   r   )r	   r$   s   "r
   r   r     r   r   c                   R # rH   r   r   s   &&$r
   lts_supportedDebianDistroInfo.lts_supported  r   r   c                t   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[S[,          /# r   r   )r	   r$   s   "r
   r   r     r   r   c                    R # rH   r   r   s   &&&r
   r   r!    r   r   c          	         < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[ P
                  S[S[,          S[S[,          3,          /# r   r   )r	   r$   s   "r
   r   r     I     2 2OOHMM22CM2	d=)494	52r   c                   Vf   V P                   pV P                  V4       Uu. uFI  pVP                  f   K  WP                  8  g   K%  VP                  f   K5  WP                  8:  g   KG  VNKK  	  ppV P	                  W$4      # u upi )zKGet list of all LTS supported Debian distributions based on the given
date.)rn   r   r?   rA   r   r   s   &&&  r
   r   r!    s    
 <::D [[&
& &*UUl    ,099+< A& 	 
   11
   BBBB-Bc                t   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[S[,          /# r   r   )r	   r$   s   "r
   r   r     r   r   c                   R # rH   r   r   s   &&$r
   elts_supportedDebianDistroInfo.elts_supported  r   r   c                t   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[S[,          /# r   r   )r	   r$   s   "r
   r   r     r   r   c                    R # rH   r   r   s   &&&r
   r*  r+    r   r   c          	         < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[ P
                  S[S[,          S[S[,          3,          /# r   r   )r	   r$   s   "r
   r   r     r%  r   c                   Vf   V P                   pV P                  V4       Uu. uFI  pVP                  f   K  WP                  8  g   K%  VP                  f   K5  WP                  8:  g   KG  VNKK  	  ppV P	                  W$4      # u upi )zTGet list of all Extended LTS supported Debian distributions based on
the given date.)rn   r   rA   rB   r   r   s   &&&  r
   r*  r+    s    
 <::D [[&
&		 *.*:    -1JJ,> A& 	 
   11
r'  c                d   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[/# r   r   )r	   r$   s   "r
   r   r     r   r   c                   R # rH   r   r   s   &&$r
   r  DebianDistroInfo.testing  r   r   c                d   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[/# r   r   )r	   r$   s   "r
   r   r     r   r   c                    R # rH   r   r   s   &&&r
   r  r2    r   r   c                   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[ P
                  S[S[3,          /# r   r   )r	   r$   s   "r
   r   r     @     1 1OOHMM21CM1	mS(	)1r   c                   Vf   V P                   pV P                  V4       Uu. uFg  pVP                  f   VP                  '       gC   VP                  f   K3  WP                  8  g   KE  VP                  e   WP                  8:  g   Ke  VNKi  	  ppV'       g   \        4       hV P                  W$R,          4      # u upi )z?Get latest testing Debian distribution based on the given date.r   )rn   r   r>   r:   r?   r!   r   r   s   &&&  r
   r  r2    s     <::D [[&
&		!aiii		  +/*:  ABQUY^Y^Q^ A& 	 
 $&&||FBK00
s   $B=	B=B=+B=B=c                &   < V ^8  d   QhRS[ RS[/# r   r   )r	   r$   s   "r
   r   r     s     
 
c 
d 
r   c                F    \         P                  W4      ;'       g    VR9   # )r   )r  r  r   r  )r[   r   r   s   &&r
   r   DebianDistroInfo.valid  s,    / 
 
8 @
 4
 	
r   r   r   rH   r   )r.   r/   r0   r1   r2   r)   r;   rD   r   r   r  r   r   r*  r  r   r3   r4   r5   r6   s   @@r
   r   r   4  s    ;# # " __   __  1 1 __   __  	1 	1 __" " " __  2 2 __" " " __  2 2 __" " " __  2 2 __   __  1 1 
 
 
r   r   c                     a a ] tR tRt oRtV3R lV 3R llt]P                  RV3R lR ll4       t]P                  RV3R lR ll4       tRV3R	 lR
 lltV3R lR lt	]P                  RV3R lR ll4       t
]P                  RV3R lR ll4       t
RV3R lR llt
]P                  RV3R lR ll4       t]P                  RV3R lR ll4       tRV3R lR lltRtVtV ;t# )UbuntuDistroInfoi  z1provides information about Ubuntu's distributionsc                   < V ^8  d   QhRR/# r#   r   )r	   r$   s   "r
   r   UbuntuDistroInfo.__annotate__  r   r   c                &   < \         SV `  R 4       R# )UbuntuNr'   r*   s   &r
   r)   UbuntuDistroInfo.__init__  r   r   c                d   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[/# r   r   )r	   r$   s   "r
   r   r>    r   r   c                   R # rH   r   r   s   &&$r
   ltsUbuntuDistroInfo.lts  r   r   c                d   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[/# r   r   )r	   r$   s   "r
   r   r>    r   r   c                    R # rH   r   r   s   &&&r
   rD  rE    r   r   c                   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[ P
                  S[S[3,          /# r   r   )r	   r$   s   "r
   r   r>    r6  r   c                   Vf   V P                   pV P                   Uu. uFx  pVP                  P                  R4      ^ 8  g   K%  VP                  '       g   K9  VP
                  '       g   KM  VP                  Tu;8:  d   VP
                  8:  g   Kr  M Kv  VNKz  	  ppV'       g   \        4       hV P                  W$R,          4      # u upi )zOGet latest long term support (LTS) Ubuntu distribution based on the
given date.LTSr   )rn   rj   r:   findr>   r?   r!   r   r   s   &&&  r
   rD  rE    s    
 <::D ^^
#yy~~e$) ./ii <=EE FGiiSWF`[\[`[`F` F` # 	 

 $&&||FBK00
s#   "C	C	C	. C	C	C	c                &   < V ^8  d   QhRS[ RS[/# r   r   )r	   r$   s   "r
   r   r>    s     + +s +t +r   c                    V P                    Uu. uF  q"P                  V8X  g   K  VNK  	  ppV'       g   R# RV^ ,          P                  9   # u upi )zIs codename an LTS release?FrJ  )rj   r<   r:   )r+   r;   r   r   s   &&  r
   is_ltsUbuntuDistroInfo.is_lts  sF    "nnEnH0D11nE
**** Fs
   AAc                t   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[S[,          /# r   r   )r	   r$   s   "r
   r   r>    r   r   c                   R # rH   r   r   s   &&$r
   r   UbuntuDistroInfo.supported  r   r   c                t   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[S[,          /# r   r   )r	   r$   s   "r
   r   r>    r   r   c                    R # rH   r   r   s   &&&r
   r   rR    r  r   c          	         < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[ P
                  S[S[,          S[S[,          3,          /# r   r   )r	   r$   s   "r
   r   r>     sI     2 2OOHMM22CM2	d=)494	52r   c                   Vf   V P                   pV P                  V4       Uu. uFI  pVP                  '       d   WP                  8:  g#   VP                  f   K5  WP                  8:  g   KG  VNKK  	  ppV P	                  W$4      # u upi )zGGet list of all supported Ubuntu distributions based on the given
date.)rn   r   r?   rC   r   r   s   &&&  r
   r   rR     s    
 <::D [[&
&$%%-Q\\ JNR^R^J^ A& 	 

   11
s   BBB-Bc                t   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[S[,          /# r   r   )r	   r$   s   "r
   r   r>  /  r   r   c                   R # rH   r   r   s   &&$r
   supported_esmUbuntuDistroInfo.supported_esm.  r   r   c                t   < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[S[,          /# r   r   )r	   r$   s   "r
   r   r>  4  r   r   c                    R # rH   r   r   s   &&&r
   rY  rZ  3  r   r   c          	         < V ^8  d   QhRS[ P                  S[P                  ,          RS[RS[ P
                  S[S[,          S[S[,          3,          /# r   r   )r	   r$   s   "r
   r   r>  8  r  r   c                    Vf   V P                   pV P                  V4       Uu. uF&  q3P                  f   K  WP                  8:  g   K$  VNK(  	  ppV P                  W$4      # u upi )zKGet list of all ESM supported Ubuntu distributions based on the
given date.)rn   r   r@   r   r   s   &&&  r
   rY  rZ  8  s[    
 <::D"kk$/_/991TU^U^M^11/_  11 `s   A#A#
A#r   rH   r   )r.   r/   r0   r1   r2   r)   rD   r   rD  rN  r   rY  r3   r4   r5   r6   s   @@r
   r<  r<    s     ;# # __   __  1 1 + + __" " " __  2 2 __" " " __  2 2 2r   r<  )r;   r   r>   )r2   rh   r   rc   rD   r   r   	Exceptionr!   r8   Literalr}   r   r   r   rY   r[   r   r<  r   r   r
   <module>ra     s    E 
  	 5$

 
"
 "
J x(>>"CD \\-)99:
%K
 K
\t
z t
nU2z U2r   