Ñò
@ó¥Oc           @   s’   d  d k  l Z d  d k Z d  d k Z d  d k l Z d d k l Z e i	 e
 ƒ Z d Z d „  Z d „  Z d	 „  Z d
 e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   VERSION_FILEN(   t   UpgradeErrori   (   t   VERSIONt   upgradec       
   C   s
  t  i i t ƒ oŒ yH t t d ƒ i i ƒ  }  z% |  ~  } t | i ƒ  i	 ƒ  ƒ } Wd  QXWqº t
 j
 o t d ƒ ‚ qº t j
 o t d ƒ ‚ qº Xn t i d ƒ t t ƒ t St | j  o t d ƒ ‚ n x, t | d t d ƒ D] } t i | ƒ qï Wt S(   Nt   rs   Couldn't read version file.s   Invalid version file format.s0   No version file found. Assuming current version.s   Server version too old.i   (   t   ost   patht   existsR    t   opent   __exit__t	   __enter__t   intt   readlinet   stript   IOErrorR   t
   ValueErrort   loggert   infot   write_versiont   new_versiont   Falset   xranget   UpgraderR   t   True(   t   _[1]t   vfilet   old_versiont   version(    (    sA   /mit/zmobile/testing/lib/python2.6/site-packages/zserv/upgrade.pyR   
   s"    &"
 c      
   C   si   yC t  t d ƒ i i ƒ  } z  | ~ } | i t |  ƒ ƒ Wd  QXWn t j
 o t d ƒ ‚ n Xd  S(   Nt   ws   Failed to write version file.(   R   R    R	   R
   t   writet   strR   R   (   R   R   R   (    (    sA   /mit/zmobile/testing/lib/python2.6/site-packages/zserv/upgrade.pyR       s
    &c          G   s   d  S(   N(   t   None(   t   _(    (    sA   /mit/zmobile/testing/lib/python2.6/site-packages/zserv/upgrade.pyt   <lambda>'   s    R   c           B   s5   e  Z d Z d  „  Z e d „  ƒ Z e d „  ƒ Z RS(   c          G   s   t  d ƒ ‚ d  S(   Ns   Can't instantiate class.(   t	   TypeError(   t   args(    (    sA   /mit/zmobile/testing/lib/python2.6/site-packages/zserv/upgrade.pyt   __new__+   s    c         C   s'   t  |  d | t ƒ ƒ  } t | ƒ | S(   Ns   v%d(   t   getattrt   nopR   (   t   clsR   t   ret(    (    sA   /mit/zmobile/testing/lib/python2.6/site-packages/zserv/upgrade.pyR   .   s    
c           C   s	   d GHd  S(   Ns   Upgraded to version 2.(    (    (    (    sA   /mit/zmobile/testing/lib/python2.6/site-packages/zserv/upgrade.pyt   v24   s    (    (   t   __name__t
   __module__t	   __slots__R$   t   classmethodR   t   staticmethodR)   (    (    (    sA   /mit/zmobile/testing/lib/python2.6/site-packages/zserv/upgrade.pyR   )   s   	(   s   upgrade(   t   settingsR    t   loggingR   t
   exceptionsR   t    R   R   t	   getLoggerR*   R   t   __all__R   R   R&   t   objectR   (    (    (    sA   /mit/zmobile/testing/lib/python2.6/site-packages/zserv/upgrade.pyt   <module>   s   			