ó
a#nSc           @   sÿ   d  Z  d d l Z d d l Z d d l Z d d l Z d Z d Z d e j f d „  ƒ  YZ d Z	 d „  Z
 d „  Z d	 „  Z d d
 „ Z e d k rû d d l Z e e j ƒ d k rû x@ e j d D]. Z e Ge e ƒ Ge e e d ƒ j ƒ  ƒ GHqÃ Wqû n  d S(   s&   primitive license handler

  License file format:
  (lines beginning with # are ignored)
    Expiration_Date: <expiration date of license>
    Verification: <verification code>

  Date format: day-month-year
  The verification code is used to ensure that the date
  has not been tampered with
iÿÿÿÿNi    t   LicenseErrorc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/utils/Licensing.pyR       s   s   UkQgTGljZW5zZSBNYW5hZ2Vy
c         C   su  t  j t j t ƒ ƒ } |  d } | d k r: t d ‚ n  | j d ƒ d k r[ t d ‚ n  | j d ƒ d j ƒ  } | j	 | ƒ y t
 t | j d ƒ ƒ } Wn g  } n Xt | ƒ d	 k rË t d
 ‚ n  | \ } } } d } x' |  D] }	 |	 j d ƒ d k rç Pqç qç W|	 j d ƒ d k rJ|	 j d ƒ d j ƒ  j ƒ  j d ƒ }
 n d }
 d } |  | } x? | t |  ƒ k  r¡| j d ƒ d k r¡| d 7} |  | } qcW| d k rºt d ‚ n  | j d ƒ d k rÛt d ‚ n  | j d ƒ d j ƒ  } t t j | | | d d d d d d f	 ƒ ƒ } | j	 t | ƒ ƒ | j	 d j |
 ƒ ƒ | j ƒ  | k rkt d ‚ n  | |
 f S(   Ni    t    s   EOF hit parsing license files   Expiration_Date:iÿÿÿÿs   bad license file formatt   :t   -i   s   bad date format in license filei   s   Modules:t   ,s   Verification:s#   verification of license file failed(   t   shat   newt   base64t   decodestringt   _saltR    t   findt   splitt   stript   updatet   mapt   intt   lent   uppert   timet   mktimet   strt   joint	   hexdigest(   t   linest   verifiert   inLt   dTextt   dateComponentst   dayt   montht   yeart   post   linet   modulest   vTextt   expDate(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/utils/Licensing.pyt   _Verify&   sP    

+
*
	c         C   so   t  j ƒ  \	 } } } } } } } } }	 t t  j | | | d d d d d d f	 ƒ ƒ }
 |  |
 k rg d Sd Sd  S(   Ni    i   (   R   t   gmtimeR   R   (   R%   R    R   R   t   ht   mt   st   wt   dt   dstt   newD(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/utils/Licensing.pyt
   _CheckDateY   s    '	c         C   s©   y t  |  d ƒ } Wn t k
 r3 t d |  ‚ n Xg  } xF | j ƒ  D]8 } t | ƒ rG | d d k rG | j | j ƒ  ƒ qG qG Wt | ƒ \ } } t | ƒ s¥ t	 Sd  S(   Nt   rs#   License file %s could not be openedi    t   #(
   t   opent   IOErrorR    t	   readlinesR   t   appendR   R&   R/   t   EXPIRED(   t   filenamet   inFR   R"   R%   R#   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/utils/Licensing.pyt   CheckLicenseFiled   s    c         C   sT   |  j  d ƒ } t | ƒ \ } } t | ƒ s1 t S| rP | j ƒ  | k rP t Sn  d S(   Ns   
i   (   R   R&   R/   R6   R   t	   BADMODULE(   t   textt   checkModuleR   R%   R#   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/utils/Licensing.pyt   CheckLicenseStringr   s    t   __main__i   R0   (   t   __doc__R   R	   R   t
   exceptionsR6   R:   t	   ExceptionR    R   R&   R/   R9   t   NoneR=   R   t   sysR   t   argvt   nmR2   t   read(    (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/utils/Licensing.pyt   <module>   s   0		3		
